如何将颜色名称转换为
SolidColorBrush
类型?我的意思是这个词,即“黄色”。
SolidColorBrush scb = ??? ; // "Yellow"
谢谢!
要获取颜色,请使用:
Color col=(Color)ColorConverter.ConvertFromString("Red");
然后创建你的画笔:
Brush brush=new SolidColorBrush(col);
或者您是否可以使用颜色枚举
Brush brush=new SolidColorBrush(Colors.Red);
Brushes
: 获取画笔
SolidColorBrush scb = Brushes.Yellow; //scb seems a bit redundant at this point...
在代码中,您通常应该不使用转换器,除非您有一个您不知道其值的字符串。
您无法将一个角色投射到另一个角色。它们只是不同的概念。画笔就是画笔,颜色就是一种颜色。仅仅因为画笔以特定颜色“绘画”,并不意味着您可以将其与另一种互换。
但是,您可以创建具有特定颜色的 SolidColorBrush,例如:
var brush = new SolidColorBrush(Color.Yellow);
// Yellow is green + red
SolidColorBrush yellowBrush = new SolidColorBrush(System.Windows.Media.Color.FromRgb(255, 255, 0));
为了避免像大多数其他答案一样操作
Color
对象,您可以或多或少地复制 XAML 解析器的功能(感谢本例中 [TypeConverter(typeof(BrushConverter))]
定义中的 Brush
)通过执行
new BrushConverter().ConvertFromString("Yellow");
这里有更多关于
System.Windows.Media.BrushConverter