更改纯色画笔颜色的最佳方法

best way to change colors of a solidcolorbrush

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

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

MessageBackground = new SolidColorBrush(Colors.Red);

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

MessageBackground = new SolidColorBrush(Colors.LightGreen);

但这对我来说似乎是错误的。消息背景本身是类型System.Windows.Media.Brush。它似乎没有任何 属性 允许动态更改它的 Color 或 Brush。

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

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

这并不比简单地将 属性 设置为新的 SolidColorBrush 好多少,所以您当前的方法完全没问题。