2009-06-25 18 views
5

Wie kann ich eine System.Windows.Media.Brush in System.Drawing.Brush konvertieren?Konvertieren von System.Windows.Media.Brush in System.Drawing.Brush

Ich versuche, die Farbe eines system.windows.media.brush zu einem System.Drawing.Color-Objekt formatiert.

Die untene Lösung funktioniert nicht, weil es ein SolidColorBrush Objekt erfordert, während das Objekt i aus der Umwandlung muss ein system.windows.media.brush Objekt ist:

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); 
} 

Antwort

13

Ich glaube, man kann es nur werfen als SolidColorBrush, um die Farbe zu erhalten.

Probieren Sie etwas wie:

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

Sie wirklich sonst eine direkte Besetzung tun sollte, wenn die Umwandlung fehlschlägt Sie eine verwirrende null-Verweisausnahme anstelle eines aussagekräftigeren ungültig Guss Ausnahme bekommen. –

+0

Dank Nathan, ich war unter der Annahme, dass die beiden Methoden nur in der Syntax unterschieden. Das ist großartig zu wissen. – 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);