Silverlight/WPF设置十六进制颜色的椭圆
我试图在代码隐藏中设置椭圆对象的颜色。到目前为止,我正在使用SolidColorBrush方法来实现它。有没有办法像CSS那样以十六进制插入颜色值 以下是我正在使用的代码:Silverlight/WPF设置十六进制颜色的椭圆,wpf,silverlight,Wpf,Silverlight,我试图在代码隐藏中设置椭圆对象的颜色。到目前为止,我正在使用SolidColorBrush方法来实现它。有没有办法像CSS那样以十六进制插入颜色值 以下是我正在使用的代码: ellipse.Fill = new SolidColorBrush(Colors.Yellow); 像这样的东西会有用的 ellipse.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF00DD")); (编辑:看
ellipse.Fill = new SolidColorBrush(Colors.Yellow);
像这样的东西会有用的
ellipse.Fill =
new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF00DD"));
(编辑:看起来这只是WPF。关于他的Silverlight颜色转换器)
虽然我更喜欢Color.FromRgb
方法
byte r = 255;
byte g = 0;
byte b = 221;
ellipse.Fill = new SolidColorBrush(Color.FromRgb(r,g,b));
我写了一篇简单的文章来解决这个问题。快乐的脸实际上是数字8和一个括号,就像这样:8) 来自
当然,您也可以这样做(使用FromArgb函数中的十六进制数):
另一个,小,快,有用:
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());
当然需要使用0xFFFFFF(uint)符号而不是“#FFFFFFFF”(字符串),但我确信这没什么大不了的。我认为这会起作用,因为它适用于文本框
var bc = new BrushConverter();
textRichTextBoxEditor.Foreground = (Brush)bc.ConvertFrom("#FF97315A");
有关使用十六进制值的信息,请访问:
your_contorl.Color = DirectCast(ColorConverter.ConvertFromString("#D8E0A627"), Color)
我需要继承什么才能使用ColorConverter?在WPF中,它在System.Windows.Media中,在Silverlight中,它不是。请参阅我的编辑。考虑到大多数XAML使用十六进制字符串作为颜色,在Silverlight中无法执行此操作非常奇怪。因此,他们拥有代码,但他们不会以一种在代码隐藏(C#)中使用的方式向我们其他人公开代码。
var bc = new BrushConverter();
textRichTextBoxEditor.Foreground = (Brush)bc.ConvertFrom("#FF97315A");
your_contorl.Color = DirectCast(ColorConverter.ConvertFromString("#D8E0A627"), Color)