如何从十六进制颜色代码(例如#FFDFD991)中获得颜色?
我正在读取一个文件,并得到一个十六进制的颜色代码。我需要为十六进制颜色代码创建相应的System.Windows.Media.Color实例。框架中是否有一个内置的方法来做到这一点?
如何从十六进制颜色代码(例如#FFDFD991)中获得颜色?
我正在读取一个文件,并得到一个十六进制的颜色代码。我需要为十六进制颜色代码创建相应的System.Windows.Media.Color实例。框架中是否有一个内置的方法来做到这一点?
当前回答
你可以使用ColorConverter.ConvertFromString(string)方法将你的字符串(十六进制)转换为颜色。
示例:(这适用于ARGB,如“#FF1E1E1E”。
Control.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#1E1E1E"));
其他回答
你可以使用下面的代码:
Color color = System.Drawing.ColorTranslator.FromHtml("#FFDFD991");
在asp.net:
color_black = (Color)new ColorConverter().ConvertFromString("#FF76B3");
你可以使用ColorConverter.ConvertFromString(string)方法将你的字符串(十六进制)转换为颜色。
示例:(这适用于ARGB,如“#FF1E1E1E”。
Control.Background = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#1E1E1E"));
还有一个简洁的扩展方法:
static class ExtensionMethods
{
public static Color ToColor(this uint argb)
{
return Color.FromArgb((byte)((argb & -16777216)>> 0x18),
(byte)((argb & 0xff0000)>> 0x10),
(byte)((argb & 0xff00) >> 8),
(byte)(argb & 0xff));
}
}
在使用:
Color color = 0xFFDFD991.ToColor();
你可以看到Silverlight/WPF用十六进制的颜色设置椭圆来使用十六进制值:
your_contorl.Color = DirectCast(ColorConverter.ConvertFromString("#D8E0A627"), Color)