我想从System.Drawing.Color
或#FF00FF
这样的值创建FF00FF
,而无需为此编写代码。有任何.NET内置解析器吗?
答案 0 :(得分:156)
ColorTranslator.FromHtml("#FF00FF");
答案 1 :(得分:58)
您可以使用System.Drawing.ColorTranslator静态方法FromHtml。
使用:
System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
答案 2 :(得分:16)
使用Convert-Class时相当容易。 ToInt32
函数有一个重载,第二个参数表示字符串所在的基础。
using System.Drawing
Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
答案 3 :(得分:9)
使用ColorConverter类:
var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );
这也可以从标准命名颜色转换,例如ConvertFromString(“Blue”)
有关标准.NET类型转换机制的讨论,请参阅here。
答案 4 :(得分:1)
如果您要使用的颜色是常量,请在C#中使用System.Drawing.Color.FromArgb (0xFF00FF)
。这比System.Drawing.Color.FromName
或System.Drawing.Color.FromHtml
略快,因为从字符串到整数的解析是在编译时而不是在运行时完成的。
答案 5 :(得分:0)
FromName方法适用于我
System.Drawing.Color.FromName("#FF00FF");