如何从它的hexRGBstring创build一个System.Drawing.Color?
我想从像#FF00FF
或FF00FF
这样的值创build一个System.Drawing.Color
,而不需要为此编写代码。 有任何.NET内置的parsing器呢?
ColorTranslator.FromHtml("#FF00FF");
您可以使用System.Drawing.ColorTranslator静态方法FromHtml。
使用:
System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
当你使用转换类时,这是相当容易的。 ToInt32
函数具有第二个参数的重载,该参数表示string所在的基础。
using System.Drawing Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
使用ColorConverter类:
var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) ); color = converter.ConvertFromString( "#FF00FF" );
这也可以从标准的命名颜色转换,例如ConvertFromString(“Blue”)
请参阅这里讨论标准的.NETtypes转换机制。
FromName方法适用于我
System.Drawing.Color.FromName("#FF00FF");
如果你想使用的颜色是一个常量,在C#中使用System.Drawing.Color.FromArgb (0xFF00FF)
。 这比System.Drawing.Color.FromName
或System.Drawing.Color.FromHtml
稍快,因为从string到整数的parsing是在编译时而不是在运行时完成的。