将颜色名称转换为 SolidColorBrush

问题描述 投票:0回答:5

如何将颜色名称转换为

SolidColorBrush
类型?我的意思是这个词,即“黄色”。

SolidColorBrush scb =  ??? ; // "Yellow" 

谢谢!

c# wpf
5个回答
42
投票

要获取颜色,请使用:

Color col=(Color)ColorConverter.ConvertFromString("Red"); 

然后创建你的画笔:

Brush brush=new SolidColorBrush(col);

或者您是否可以使用颜色枚举

Brush brush=new SolidColorBrush(Colors.Red);

14
投票

如果您已经知道颜色的名称,您可以直接从

Brushes
:

获取画笔
SolidColorBrush scb = Brushes.Yellow; //scb seems a bit redundant at this point...

在代码中,您通常应该使用转换器,除非您有一个您不知道其值的字符串。


8
投票

您无法将一个角色投射到另一个角色。它们只是不同的概念。画笔就是画笔,颜色就是一种颜色。仅仅因为画笔以特定颜色“绘画”,并不意味着您可以将其与另一种互换。

但是,您可以创建具有特定颜色的 SolidColorBrush,例如:

 var brush = new SolidColorBrush(Color.Yellow);

4
投票
// Yellow is green + red
SolidColorBrush yellowBrush = new SolidColorBrush(System.Windows.Media.Color.FromRgb(255, 255, 0));

0
投票

为了避免像大多数其他答案一样操作

Color
对象,您可以或多或少地复制 XAML 解析器的功能(感谢本例中
[TypeConverter(typeof(BrushConverter))]
定义中的
Brush
)通过执行

new BrushConverter().ConvertFromString("Yellow");

这里有更多关于

System.Windows.Media.BrushConverter

© www.soinside.com 2019 - 2024. All rights reserved.