Cli*_*rce 38 .net c# graphics brush colors
我有一个配置文件,开发人员可以通过传入一个字符串来指定文本颜色:
<text value="Hello, World" color="Red"/>
Run Code Online (Sandbox Code Playgroud)
而不是有一个巨大的开关语句寻找所有可能的颜色,只是使用类System.Drawing.Brushes中的属性而不是内部我可以这样说:
Brush color = Brushes.Black; // Default
// later on...
this.color = (Brush)Enum.Parse(typeof(Brush), prasedValue("color"));
Run Code Online (Sandbox Code Playgroud)
除了刷子/画笔中的值不是枚举.所以Enum.Parse没有给我带来快乐.建议?
Luc*_*cas 70
回顾所有以前的答案,将字符串转换为颜色或画笔的不同方法:
// best, using Color's static method
Color red1 = Color.FromName("Red");
// using a ColorConverter
TypeConverter tc1 = TypeDescriptor.GetConverter(typeof(Color)); // ..or..
TypeConverter tc2 = new ColorConverter();
Color red2 = (Color)tc.ConvertFromString("Red");
// using Reflection on Color or Brush
Color red3 = (Color)typeof(Color).GetProperty("Red").GetValue(null, null);
// in WPF you can use a BrushConverter
SolidColorBrush redBrush = (SolidColorBrush)new BrushConverter().ConvertFromString("Red");
Run Code Online (Sandbox Code Playgroud)
Jun*_*r M 43
要刷的字符串:
myTextBlock.Foreground = new BrushConverter().ConvertFromString("#FFFFFF") as SolidColorBrush;
Run Code Online (Sandbox Code Playgroud)
这就是我的情况!
小智 12
画笔可以像这样声明
Brush myBrush = new SolidBrush(Color.FromName("Red"));
Run Code Online (Sandbox Code Playgroud)
D'哦.经过一段时间的寻找我发现:
Color.FromName(a.Value)
Run Code Online (Sandbox Code Playgroud)
点击"帖子"后.从那里开始,这是一个很短的步骤:
color = new SolidBrush(Color.FromName(a.Value));
Run Code Online (Sandbox Code Playgroud)
我会把这个问题留给别人......