2011-04-01 187 views
2

我已经使用System.Windows.Media.Color创建了一个变量。我可以使用ToString()显示这个变量的十六进制值。然而,这也给了我的alpha值。无论如何只能得到RGB值?如果我尝试使用Color.R.ToString();它只给了我数值。将ARGB转换为WPF中的RGB

我必须手动将其更改为十六进制还是有内置的方法呢?

回答

5

从我从您的问题中收集的内容中,您想将其转换为十六进制格式的颜色。你可以只单独将每个颜色的成员,而忽略了阿尔法:

string color_str = string.Format("#{0:X2}{1:X2}{2:X2}", Color.R, Color.G, Color.B); 
+0

我来找的代码片段返回“#2X2X2X”,同时通过Color.Red – AbrahamJP 2011-04-01 06:33:47

+0

@AbrahamJP:哎呀,这就是我得到的不是测试我的代码。这是X2,而不是2X。我修好了它。 – yuriks 2011-04-01 10:54:54

2

我才找到“ColorTranslator”也做在一个更简洁的方式对颜色转换十六进制。

Color C = Color.Red; 
string HexVal = ColorTranslator.ToHtml(Color.FromArgb(C.R, C.G, C.B)));