Как конфертировать из System.Drawing.Color в System.Windows.Media.Color? - PullRequest
37 голосов
/ 11 января 2011

Как я могу конвертировать между этими двумя типами цвета?

Ответы [ 3 ]

63 голосов
/ 11 января 2011

Ниже приведены примеры обоих направлений конвертации:

Drawing.Color в Windows.Media.Color

// This is your color to convert from
System.Drawing.Color color; 
System.Windows.Media.Color newColor = System.Windows.Media.Color.FromArgb(color.A, color.R, color.G, color.B);

Windows.Media.Color вDrawing.Color

// This is your color to convert from
System.Windows.Media.Color color; 
System.Drawing.Color newColor = System.Drawing.Color.FromArgb(color.A, color.R, color.G, color.B);
8 голосов
/ 07 декабря 2015

Для частого использования я предлагаю помощник, как это:

using SDColor = System.Drawing.Color;
using SWMColor = System.Windows.Media.Color;

namespace ColorHelper
{
    public static class ColorExt
    {
        public static SWMColor ToSWMColor(this SDColor color) => SWMColor.FromArgb(color.A, color.R, color.G, color.B);
        public static SDColor ToSDColor(this SWMColor color) => SDColor.FromArgb(color.A, color.R, color.G, color.B);
    }
}
3 голосов
/ 04 ноября 2015

... или используйте ответ @Rion Williams как расширение:

public static System.Windows.Media.Brush ToBrush(this System.Drawing.Color color)
{
    return new System.Windows.Media.SolidColorBrush(System.Windows.Media.Color.FromArgb(color.A, color.R, color.G, color.B));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...