改变solidcolorbrush颜色的最佳方法

时间:2017-06-12 14:27:16

标签: c# .net wpf solidcolorbrush

我有一个绑定到我的wpf应用程序中元素背景的画笔。

当我在构造函数中初始化它时,我会这样做:

MessageBackground = new SolidColorBrush(Colors.Red);

现在代码中有时候我想将背景更改为绿色。我一直这样做:

MessageBackground = new SolidColorBrush(Colors.LightGreen);

但这对我来说似乎不对。消息背景本身是System.Windows.Media.Brush类型。它似乎没有像Color或Brush这样的属性可以动态地改变它。

1 个答案:

答案 0 :(得分:2)

您需要将MessageBackground属性转换为SolidColorBrush才能设置其Color属性:

var brush = MessageBackground as SolidColorBrush;
if (brush != null)
    brush.Color = Colors.LightGreen;

这并不比简单地将属性设置为新的SolidColorBrush更好,尽管如此,您当前的方法非常好。