Silverlight/WPF设置十六进制颜色的椭圆

Silverlight/WPF设置十六进制颜色的椭圆,wpf,silverlight,Wpf,Silverlight,我试图在代码隐藏中设置椭圆对象的颜色。到目前为止,我正在使用SolidColorBrush方法来实现它。有没有办法像CSS那样以十六进制插入颜色值 以下是我正在使用的代码: ellipse.Fill = new SolidColorBrush(Colors.Yellow); 像这样的东西会有用的 ellipse.Fill = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF00DD")); (编辑:看

我试图在代码隐藏中设置椭圆对象的颜色。到目前为止,我正在使用SolidColorBrush方法来实现它。有没有办法像CSS那样以十六进制插入颜色值

以下是我正在使用的代码:

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)