WPF更改矩形的颜色填写代码

时间:2014-06-22 03:48:35

标签: c# wpf binding

嘿,我是WPF的新手,我需要更改WPF中矩形填充的颜色。

目前我有这个:

<Rectangle Fill="{Binding aColor}" RadiusY="5" RadiusX="5">
    <Rectangle.Effect>
        <DropShadowEffect ShadowDepth="0"/>
    </Rectangle.Effect>
</Rectangle>

我不确定如何在代码中使用上面的绑定。

任何帮助都会很棒!

2 个答案:

答案 0 :(得分:1)

Fill属性是Brush类型,所以你不能直接绑定颜色,

做这样的事,

<Rectangle Width="100"
           Height="100">
    <Rectangle.Fill>
        <SolidColorBrush Color="{Binding color}"/>
    </Rectangle.Fill>
</Rectangle>

另外,您可以实现Color-To-Brush转换器。像this

一样

答案 1 :(得分:1)

知道了!

C#:

System.Drawing.Color c = ColorTranslator.FromHtml("#FFFFFF");
System.Windows.Media.Color color = System.Windows.Media.Color.FromRgb(c.R, c.G, c.B);
aColor.Color = color;

XAML:

<Rectangle RadiusY="5" RadiusX="5">
  <Rectangle.Fill>
     <SolidColorBrush x:Name="aColor"/>
  </Rectangle.Fill>
  <Rectangle.Effect>
     <DropShadowEffect ShadowDepth="0"/>
  </Rectangle.Effect>
</Rectangle>