2009-06-25 2 views
5

Come posso convertire un System.Windows.Media.Brush in System.Drawing.Brush?Converti System.Windows.Media.Brush in System.Drawing.Brush

Sto cercando di ottenere il colore di un file system.windows.media.brush formattato su un oggetto System.Drawing.Color.

La soluzione qui di seguito non funziona perché richiede un oggetto SolidColorBrush, mentre l'oggetto che ho bisogno la conversione da un oggetto 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); 
} 

risposta

13

Credo che si può solo lanciarlo come SolidColorBrush per ottenere il colore.

provare qualcosa di simile:

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

Si dovrebbe fare un cast diretta altrimenti se il cast non riesce si otterrà un'eccezione riferimento null confusione invece di un'eccezione valida getto più descrittivo. –

+0

Grazie Nathan, ero sotto il presupposto che i due metodi differivano solo nella sintassi. Questo è bello saperlo. – 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);