我想从十六进制值创建SolidColorBrush。我该怎么做呢?
在MSDN上,我得到了:
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);
所以我写道(考虑到我的方法接收颜色作为#ffaacc
):
Color.FromRgb(
Convert.ToInt32(color.Substring(1, 2), 16),
Convert.ToInt32(color.Substring(3, 2), 16),
Convert.ToInt32(color.Substring(5, 2), 16));
但是这给出了错误,因为
The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments
还有3个错误:Cannot convert int to byte.
那么MSDN示例是如何工作的呢?
发布于 2012-05-23 05:09:02
试着这样做:
(SolidColorBrush)new BrushConverter().ConvertFrom("#ffaacc");
发布于 2016-05-25 03:35:27
我一直在用:
new SolidColorBrush((Color)ColorConverter.ConvertFromString("#ffaacc"));
发布于 2012-04-08 19:50:07
How to get Color from Hexadecimal color code using .NET?
我想这就是你想要的,希望它能回答你的问题。
要让代码正常工作,请使用Convert.ToByte而不是Convert.ToInt...
string colour = "#ffaacc";
Color.FromRgb(
Convert.ToByte(colour.Substring(1,2),16),
Convert.ToByte(colour.Substring(3,2),16),
Convert.ToByte(colour.Substring(5,2),16));
https://stackoverflow.com/questions/10062376
复制相似问题