如何将C#中的颜色动态更改为十六进制值?

时间:2009-06-24 12:18:54

标签: c# asp.net user-interface

我知道如何使用诸如Label1.BackColor = Color.LightSteelBlue之类的语句将C#中的控件的BackColor动态设置为命名颜色; (使用System.Drawing;)

但是如何将十六进制值转换为System.Color,即Label1.BackColor =“#B5C7DE

4 个答案:

答案 0 :(得分:9)

我会使用颜色转换器:

var color = ColorTranslator.FromHtml("#FF1133");

希望这有帮助。

答案 1 :(得分:7)

string hexColor = "#B5C7DE";
Color color = ColorTranslator.FromHtml(hexColor);

答案 2 :(得分:0)

Color.FromArgb(0xB5C7DE);

或者,如果要解析字符串

private Color ParseColor(string s, Color defaultColor)
{
    try
    {
        ColorConverter cc = new ColorConverter();
        Color c = (Color)(cc.ConvertFromString(s));

        if (c != null)
        {
            return c;
        }
    }
    catch (Exception)
    {
    }
    return defaultColor;
}

如果它无法解析s,则此函数只返回默认值。如果你宁愿自己处理异常,你可以让异常通过。

答案 3 :(得分:0)

您可以使用Color.FromArgb方法:

Label1.BackColor = Color.FromArgb(0xB5C7DE);