2009-06-25 32 views
5

System.Windows.Media.BrushをSystem.Drawing.Brushに変換するにはどうすればよいですか?System.Windows.Media.BrushをSystem.Drawing.Brushに変換します。

System.Drawing.Colorオブジェクトにフォーマットされたsystem.windows.media.brushの色を取得しようとしています。私はから変換する必要があるオブジェクトがsystem.windows.media.brushオブジェクトであるのに対し、それは、SolidColorBrushのオブジェクトを必要とするため

以下のソリューションは動作しません:

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として。キャストがあなたの代わりに、より説明無効なキャスト例外の混乱はnull参照の例外を取得します失敗した場合は、本当にそうでない場合、直接キャストを行う必要があります

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

のようなものを試してみてください。 –

+0

ありがとうございましたネイサン、私は2つの方法が構文が異なることを前提としていました。これは知っていることは素晴らしいことです。 – stevosaurus

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); 
関連する問題