当前位置:  开发笔记 > 编程语言 > 正文

在C#中将字符串转换为画笔/画笔颜色名称

如何解决《在C#中将字符串转换为画笔/画笔颜色名称》经验,为你挑选了4个好方法。

我有一个配置文件,开发人员可以通过传入一个字符串来指定文本颜色:

 

而不是有一个巨大的开关语句寻找所有可能的颜色,只是使用类System.Drawing.Brushes中的属性而不是内部我可以这样说:

 Brush color = Brushes.Black;   // Default

 // later on...
 this.color = (Brush)Enum.Parse(typeof(Brush), prasedValue("color"));

除了刷子/画笔中的值不是枚举.所以Enum.Parse没有给我带来快乐.建议?



1> Lucas..:

回顾所有以前的答案,将字符串转换为颜色或画笔的不同方法:

// 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");



2> Junior M..:

要刷的字符串:

myTextBlock.Foreground = new BrushConverter().ConvertFromString("#FFFFFF") as SolidColorBrush;

这就是我的情况!


另请注意,这需要.Net 3.0或更高版本

3> 小智..:

画笔可以像这样声明

Brush myBrush = new SolidBrush(Color.FromName("Red"));



4> Clinton Pier..:

D'哦.经过一段时间的寻找我发现:

 Color.FromName(a.Value)

点击"帖子"后.从那里开始,这是一个很短的步骤:

 color = new SolidBrush(Color.FromName(a.Value));

我会把这个问题留给别人......

推荐阅读
大大炮
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有