2009-06-25 15 views
5

Jak mogę przekonwertować System.Windows.Media.Brush na System.Drawing.Brush?Konwersja System.Windows.Media.Brush do System.Drawing.Brush

Próbuję uzyskać kolor system.windows.media.brush sformatowany do obiektu System.Drawing.Color.

Poniższa rozwiązanie nie działa, ponieważ wymaga solidcolorbrush obiektu, natomiast przedmiotem muszę konwersji z jest obiektem 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); 
} 

Odpowiedz

13

Wierzę, że można po prostu zarzuć jako SolidColorBrush, aby uzyskać kolor.

spróbować czegoś jak:

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

Powinieneś zrobić bezpośredni obsady inaczej jeśli obsada nie dostaniesz mylące wyjątek odniesienia NULL zamiast bardziej opisowy nieprawidłowej wyjątkiem szarego. –

+0

Dzięki Nathan, byłem przy założeniu, że obie metody różnią się tylko składnią. To świetnie wiedzieć. – 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);