如何从十六进制颜色代码(例如#FFDFD991)中获得颜色?

我正在读取一个文件,并得到一个十六进制的颜色代码。我需要为十六进制颜色代码创建相应的System.Windows.Media.Color实例。框架中是否有一个内置的方法来做到这一点?


当前回答

Use

System.Drawing.Color.FromArgb(myHashCode);

其他回答

Use

System.Drawing.Color.FromArgb(myHashCode);

你可以使用ColorConverter.ConvertFromString(string)方法将你的字符串(十六进制)转换为颜色。

示例:(这适用于ARGB,如“#FF1E1E1E”。

Control.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#1E1E1E"));

你可以使用下面的代码:

Color color = System.Drawing.ColorTranslator.FromHtml("#FFDFD991");

WPF:

using System.Windows.Media;

//hex to color
Color color = (Color)ColorConverter.ConvertFromString("#7AFF7A7A");

//color to hex
string hexcolor = color.ToString();

我在我的项目中使用了ColorDialog。ColorDialog有时返回“Red”,“Fhushia”,有时返回“fff000”。我这样解决了这个问题也许能帮到别人。

        SolidBrush guideLineColor;
        if (inputColor.Any(c => char.IsDigit(c)))
        {
            string colorcode = inputColor;
            int argbInputColor = Int32.Parse(colorcode.Replace("#", ""), NumberStyles.HexNumber);
             guideLineColor = new SolidBrush(Color.FromArgb(argbInputColor));

        }
        else
        {
            Color col = Color.FromName(inputColor);
             guideLineColor = new SolidBrush(col);
        }

InputColor是ColorDialog的返回值。

谢谢大家回答这个问题。这对我帮助很大。