Tho*_*rin 706
我假设这是一个ARGB代码...你是指System.Drawing.Color或System.Windows.Media.Color?例如,后者用于WPF.我还没有看到有人提到它,所以万一你正在寻找它:
using System.Windows.Media;
Color color = (Color)ColorConverter.ConvertFromString("#FFDFD991");
Run Code Online (Sandbox Code Playgroud)
Ode*_*ded 535
假设您的意思是HTML类型的RGB代码(称为十六进制代码,例如#FFCC66),请使用ColorTranslator类:
System.Drawing.Color col = System.Drawing.ColorTranslator.FromHtml("#FFCC66");
Run Code Online (Sandbox Code Playgroud)
但是,如果您使用的是ARGB十六进制代码,则可以使用System.Windows.Media命名空间中的ColorConverter类:
Color col = ColorConverter.ConvertFromString("#FFDFD991") as Color;
//or = (Color) ColorConverter.ConvertFromString("#FFCC66") ;
Run Code Online (Sandbox Code Playgroud)
Han*_*ing 108
如果您不想使用ColorTranslator,可以轻松完成:
string colorcode = "#FFFFFF00";
int argb = Int32.Parse(colorcode.Replace("#", ""), NumberStyles.HexNumber);
Color clr = Color.FromArgb(argb);
Run Code Online (Sandbox Code Playgroud)
colorcode只是ARGB值的十六进制表示.
编辑
如果需要使用4个值而不是单个整数,则可以使用此值(组合多个注释):
string colorcode = "#FFFFFF00";
colorcode = colorcode.TrimStart('#');
Color col; // from System.Drawing or System.Windows.Media
if (colorcode.Length == 6)
col = Color.FromArgb(255, // hardcoded opaque
int.Parse(colorcode.Substring(0,2), NumberStyles.HexNumber),
int.Parse(colorcode.Substring(2,2), NumberStyles.HexNumber),
int.Parse(colorcode.Substring(4,2), NumberStyles.HexNumber));
else // assuming length of 8
col = Color.FromArgb(
int.Parse(colorcode.Substring(0, 2), NumberStyles.HexNumber),
int.Parse(colorcode.Substring(2, 2), NumberStyles.HexNumber),
int.Parse(colorcode.Substring(4, 2), NumberStyles.HexNumber),
int.Parse(colorcode.Substring(6, 2), NumberStyles.HexNumber));
Run Code Online (Sandbox Code Playgroud)
注1:NumberStyles位于System.Globalization中.
注2:请提供您自己的错误检查(颜色代码应为6或8个字符的十六进制值)
小智 40
还有这个简洁的小扩展方法:
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));
}
}
Run Code Online (Sandbox Code Playgroud)
正在使用:
Color color = 0xFFDFD991.ToColor();
Run Code Online (Sandbox Code Playgroud)
dem*_*emp 37
下面的三个变体给出完全相同的颜色.最后一个具有在Visual Studio 2010 IDE中突出显示的好处(也许是正在使用它的ReSharper),具有适当的颜色.
var cc1 = System.Drawing.ColorTranslator.FromHtml("#479DEE");
var cc2 = System.Drawing.Color.FromArgb(0x479DEE);
var cc3 = System.Drawing.Color.FromArgb(0x47, 0x9D, 0xEE);
Run Code Online (Sandbox Code Playgroud)
Bad*_*ack 14
private Color FromHex(string hex)
{
if (hex.StartsWith("#"))
hex = hex.Substring(1);
if (hex.Length != 6) throw new Exception("Color not valid");
return Color.FromArgb(
int.Parse(hex.Substring(0, 2), System.Globalization.NumberStyles.HexNumber),
int.Parse(hex.Substring(2, 2), System.Globalization.NumberStyles.HexNumber),
int.Parse(hex.Substring(4, 2), System.Globalization.NumberStyles.HexNumber));
}
Run Code Online (Sandbox Code Playgroud)
小智 11
您可以使用以下代码:
Color color = System.Drawing.ColorTranslator.FromHtml("#FFDFD991");
Run Code Online (Sandbox Code Playgroud)
Con*_*eer 11
我需要将HEX颜色代码转换为System.Drawing.Color,特别是作为WPF表单背景的Alice Blue的阴影,发现找到答案需要比预期更长的时间:
using System.Windows.Media;
Run Code Online (Sandbox Code Playgroud)
-
System.Drawing.Color myColor = System.Drawing.ColorTranslator.FromHtml("#EFF3F7");
this.Background = new SolidColorBrush(System.Windows.Media.Color.FromArgb(myColor.A, myColor.R, myColor.G, myColor.B));
Run Code Online (Sandbox Code Playgroud)
在 ASP.NET 中:
color_black = (Color)new ColorConverter().ConvertFromString("#FF76B3");
Run Code Online (Sandbox Code Playgroud)
如果您想使用Windows应用商店应用,请关注@Hans Kesting和@Jink回答:
string colorcode = "#FFEEDDCC";
int argb = Int32.Parse(colorcode.Replace("#", ""), NumberStyles.HexNumber);
tData.DefaultData = Color.FromArgb((byte)((argb & -16777216) >> 0x18),
(byte)((argb & 0xff0000) >> 0x10),
(byte)((argb & 0xff00) >> 8),
(byte)(argb & 0xff));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
485422 次 |
| 最近记录: |