我正在尝试在后面的代码中设置椭圆对象的颜色。到目前为止,我正在使用SolidColorBrush方法。有没有办法用十六进制插入颜色值,比如CSS?
以下是我正在使用的代码:
ellipse.Fill = new SolidColorBrush(Colors.Yellow);
答案 0 :(得分:4)
这样的事情会起作用
ellipse.Fill =
new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF00DD"));
(编辑:看起来这只是WPF。Alex Golesh has a blog post here关于他的Silverlight ColorConverter)
虽然我更喜欢Color.FromRgb
方法
byte r = 255;
byte g = 0;
byte b = 221;
ellipse.Fill = new SolidColorBrush(Color.FromRgb(r,g,b));
答案 1 :(得分:2)
我写了一个简单的color converter function来解决这个问题。幸福的面孔实际上是数字8和括号,如下所示:8)。
答案 2 :(得分:2)
来自MSDN
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
// Describes the brush's color using RGB values.
// Each value has a range of 0-255.
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);
myRgbRectangle.Fill = mySolidColorBrush;
答案 3 :(得分:1)
当然,您也可以这样做(使用FromArgb函数中的十六进制数字):
SolidColorBrush mySolidColorBrush = new SolidColorBrush();
// Describes the brush's color using RGB HEX values.
// Each value has a range of 0-255. Use 0x for HEX numbers
mySolidColorBrush.Color = Color.FromArgb(255, 0xFF, 0xC0, 0xD0);
myRgbRectangle.Fill = mySolidColorBrush;
答案 4 :(得分:1)
另一个小,快,有用:
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));
}
在代码中使用:
SolidColorBrush scb = new SolidColorBrush (0xFFABCDEF.ToColor());
当然需要使用0xFFFFFFFF(uint)表示法而不是“#FFFFFFFF”(字符串),但我确信这没什么大不了的。
答案 5 :(得分:1)
使用十六进制值:
your_contorl.Color = DirectCast(ColorConverter.ConvertFromString("#D8E0A627"), Color)
答案 6 :(得分:0)
我认为这样可行,因为它适用于文本框。
var bc = new BrushConverter();
textRichTextBoxEditor.Foreground = (Brush)bc.ConvertFrom("#FF97315A");