Подтвердить что ты не робот

Как конвертировать из System.Drawing.Color в System.Windows.Media.Color?

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

4b9b3361

Ответ 1

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

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);

Ответ 2

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

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

... или использовать @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));
}