在C#中,如何使用十六进制值创建System.Drawing.Color对象?

时间:2009-11-19 10:27:45

标签: c# .net colors system.drawing.color

在C#中,如何使用类似#FFFFF,#FGFG01等的值创建System.Drawing.Color对象...

4 个答案:

答案 0 :(得分:32)

string hexValue = "#000000"; // You do need the hash
Color colour = System.Drawing.ColorTranslator.FromHtml(hexValue); // Yippee

编辑:您确实需要哈希,否则不会考虑Alpha值。 Woops!

答案 1 :(得分:3)

var my col = Color.FromArgb(int x);

请注意,您还需要指定一个alpha值(可能你想要FF,即完全不透明,所以将0xFF000000添加到颜色十六进制值)

答案 2 :(得分:1)

您可以将值更改为以FF开头吗?例如。 FFFFFFFF =白色。这是为了将alpha值添加到开头。

如果是这样,只需使用System.Drawing.Color.FromArgb解析值。它需要int,其中前8位是alpha值。 255是不透明的。

要将字符串转换为int,请使用Int32.Parse。例如。

String HexColourValue = "FABFAB";
System.Drawing.Color colour = System.Drawing.Color.FromArgb(Int32.Parse("FF"+HexColourValue,
                              System.Globalization.NumberStyles.HexNumber));

确保HexColourValue中没有“#”。

答案 3 :(得分:0)

Color.FromArgb(Convert.ToInt32( str.Substring(1), 16 ));