WPF C# slider滑块改变Grid颜色

有三个slider,分别是红,绿,蓝。实现的功能是滑动滑块能够改变<Grid/>(或者<Button/>)的颜色。三个slider的Maximum="255"。初学者,没... 有三个slider,分别是红,绿,蓝。
实现的功能是滑动滑块能够改变<Grid/>(或者<Button/>)的颜色。
三个slider 的 Maximum="255"。
初学者,没有什么基础,所以请详细的,附代码讲解下,谢谢了。
展开
 我来答
RayNCC
推荐于2016-08-20 · TA获得超过615个赞
知道小有建树答主
回答量:452
采纳率:0%
帮助的人:603万
展开全部

用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 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式