如何从它的hexRGBstring创build一个System.Drawing.Color?

我想从像#FF00FFFF00FF这样的值创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.FromNameSystem.Drawing.Color.FromHtml稍快,因为从string到整数的parsing是在编译时而不是在运行时完成的。