我有一个绑定到我的wpf应用程序中元素背景的画笔。
当我在构造函数中初始化它时,我会这样做:
MessageBackground = new SolidColorBrush(Colors.Red);
现在代码中有时候我想将背景更改为绿色。我一直这样做:
MessageBackground = new SolidColorBrush(Colors.LightGreen);
但这对我来说似乎不对。消息背景本身是System.Windows.Media.Brush类型。它似乎没有像Color或Brush这样的属性可以动态地改变它。
答案 0 :(得分:2)
您需要将MessageBackground
属性转换为SolidColorBrush
才能设置其Color
属性:
var brush = MessageBackground as SolidColorBrush;
if (brush != null)
brush.Color = Colors.LightGreen;
这并不比简单地将属性设置为新的SolidColorBrush
更好,尽管如此,您当前的方法非常好。