Вопрос по c# – Конвертировать System.Windows.Media.Brush в System.Drawing.Brush

5

Как я могу преобразовать System.Windows.Media.Brush в System.Drawing.Brush?

Я пытаюсь получить цвет system.windows.media.brush, отформатированный в объект System.Drawing.Color.

Приведенное ниже решение не работает, так как для него требуется объект solidcolorbrush, тогда как объект, из которого мне нужно преобразовать, является объектом system.windows.media.brush:

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

Ваш Ответ

2   ответа
13

что вы можете просто использовать его как SolidColorBrush, чтобы получить цвет.

Попробуйте что-то вроде:

MyColor = ((SolidColorBrush)MyMediaBrush).Color;
Вы действительно должны выполнить прямое приведение, иначе, если приведение не выполнено, вы получите запутанное исключение нулевой ссылки вместо более описательного недопустимого исключения преобразования. Nathan Baulch
Спасибо Натан, я предполагал, что эти два метода отличаются только синтаксисом. Это приятно знать. 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);

Похожие вопросы