2009-06-25 120 views
5

如何将System.Windows.Media.Brush转换为System.Drawing.Brush?将System.Windows.Media.Brush转换为System.Drawing.Brush

我正在尝试将system.windows.media.brush的颜色格式化为System.Drawing.Color对象。

下面的解决方案不起作用,因为它需要的SolidColorBrush对象,而我需要转换的对象是一个system.windows.media.brush对象:

public System.Drawing.Color GetColor(System.Windows.Media.SolidColorBrush oBrush) 
{ 
    return System.Drawing.Color.FromArgb(oBrush.Color.A, 
            oBrush.Color.R, 
            oBrush.Color.G, 
            oBrush.Color.B); 
} 

回答

13

我相信你可以只投它作为SolidColorBrush来获取颜色。

尝试类似:

MyColor = ((SolidColorBrush)MyMediaBrush).Color; 
+0

你真的应该做的直接投否则,如果转换失败,你会得到一个混乱的空引用异常,而不是一个更具描述性的无效转换异常。 – 2009-06-26 02:56:56

0
System.Drawing.Color c1 = new System.Drawing.Color(); 
      c1 = System.Drawing.Color.FromName(Properties.Settings.Default.myColor); 
      System.Windows.Media.Color c2 = new Color(); 
      c2 = Color.FromArgb(c1.A, c1.R, c1.G, c1.B);