tags:

views:

1660

answers:

1

How can I convert a System.Windows.Media.Brush to System.Drawing.Brush?

I'm trying to get the color of a system.windows.media.brush formatted to a System.Drawing.Color object.

The below solution doesn't work because it requires a solidcolorbrush object, whereas the object i need converting from is a system.windows.media.brush object:

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 );
}
+1  A: 

I believe you can just cast it as a SolidColorBrush to get the color.

Try something like:

MyColor = ((SolidColorBrush)MyMediaBrush).Color;
stevosaurus
You really should do a direct cast otherwise if the cast fails you'll get a confusing null reference exception instead of a more descriptive invalid cast exception.
Nathan Baulch
Thanks Nathan, I was under the assumption that the two methods only differed in syntax. This is great to know.
stevosaurus