WPF C# slider滑块改变Grid颜色
有三个slider,分别是红,绿,蓝。实现的功能是滑动滑块能够改变<Grid/>(或者<Button/>)的颜色。三个slider的Maximum="255"。初学者,没...
有三个slider,分别是红,绿,蓝。
实现的功能是滑动滑块能够改变<Grid/>(或者<Button/>)的颜色。
三个slider 的 Maximum="255"。
初学者,没有什么基础,所以请详细的,附代码讲解下,谢谢了。 展开
实现的功能是滑动滑块能够改变<Grid/>(或者<Button/>)的颜色。
三个slider 的 Maximum="255"。
初学者,没有什么基础,所以请详细的,附代码讲解下,谢谢了。 展开
1个回答
展开全部
用MultiBinding+自定义ValueConverter
<Grid.Background>
<MultiBinding Converter="{local:RGBToBrushConverter}">
<Binding ElementName="SliderRed" Path="Value"/>
<Binding ElementName="SliderGreen" Path="Value"/>
<Binding ElementName="SliderBlue" Path="Value"/>
</MultiBinding>
</Grid.Background>
然后你的ValueConverter,
public class RGBToBrushConverter : IMultiValueConverter
{
public object Convert(object[] values, ......)
{
byte r = (byte)values[0];
byte g = (byte)values[1];
byte b = (byte)values[2];
return new SolidColorBrush(Color.FromRgb(r, g, b));
}
}
大概如此。
没开VS直接敲的,大致逻辑是这样了
追问
原谅我不懂。。。
public object Convert(object[] values, RoutedEventArgs e)
后面的补全对不对?
还有,他提示我命名空间"Color"中不存在类型或命名空间名称"FromRgb"
复制去Google翻译翻译结果
追答
IMultiValueConverter是一个接口,你继承这个接口,VS会帮你提示有哪些方法需要实现
namespace System.Windows.Data
{
/// <summary>Provides a way to apply custom logic in a <see cref="T:System.Windows.Data.MultiBinding" />.</summary>
public interface IMultiValueConverter
{
object Convert(object[] values, Type targetType, object parameter, CultureInfo culture);
object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture);
}
}
ZESTRON
2024-09-04 广告
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸...
点击进入详情页
本回答由ZESTRON提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询