如何从其十六进制RGB字符串创建System.Drawing.Color?

Jad*_*ias 81 .net parsing hex colors system.drawing.color

我想创建一个System.Drawing.Color类似于#FF00FFFF00FF不需要为其编写代码的值.有任何.NET内置解析器吗?

Joã*_*elo 160

ColorTranslator.FromHtml("#FF00FF");
Run Code Online (Sandbox Code Playgroud)


Pat*_*Pat 59

您可以使用System.Drawing.ColorTranslator静态方法FromHtml.

使用:

System.Drawing.ColorTranslator.FromHtml("#FFFFFF");
Run Code Online (Sandbox Code Playgroud)


Bob*_*bby 16

使用Convert-Class时相当容易.该ToInt32函数有一个带有第二个参数的重载,该参数表示字符串所在的基数.

using System.Drawing

Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16));
Run Code Online (Sandbox Code Playgroud)


Phi*_*ney 9

使用ColorConverter类:

var converter = System.ComponentModel.TypeDescriptor.GetConverter( typeof( Color ) );
color = converter.ConvertFromString( "#FF00FF" );
Run Code Online (Sandbox Code Playgroud)

这也可以从标准命名颜色转换,例如ConvertFromString("Blue")

有关标准.NET类型转换机制的讨论,请参见此处.