更改纯色画笔颜色的最佳方法
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
好多少,所以您当前的方法完全没问题。
我有一个画笔绑定到我的 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
好多少,所以您当前的方法完全没问题。