/ / Sharpdx Надання Не очікується Колір - c #, кольори, sharpdx

Sharpdx Надання Не очікується Колір - c #, кольори, sharpdx

Я отримав колір, використовуючи керування Xcedd Color Picker ... Я намагаюся конвертувати System.windows.Media.Color До SharpDx.Color Формат, але не отримання очікуваного результату.

Я отримую значення кольору з керування, використовуючи цей код

//selected color is null then default color red
//_color is System.Windows.Media.Color Type
_color = ClrPckrTextColour.SelectedColor.HasValue ? ClrPckrTextColour.SelectedColor.Value : Colors.Red;

Потім я змінюю колір Windows для кольору SharpDx Використання цього кодексу

public static SharpDx.Color ToSharpDxColor(this System.Windows.Media.Color color)
{
//its known color code is yellow
System.Drawing.KnownColor colorenum = (System.Drawing.KnownColor)Enum.Parse(typeof(System.Drawing.KnownColor), color.GetColorName());
//but its return blue color
return new SharpDx.Color(System.Drawing.Color.FromKnownColor(colorenum).ToArgb());
}
//Get color name extension
public static string GetColorName(this System.Windows.Media.Color color)
{
Type colors = typeof(System.Windows.Media.Colors);
foreach (var prop in colors.GetProperties())
{
if (((System.Windows.Media.Color)prop.GetValue(null, null)) == color)
return prop.Name;
}

throw new Exception("The provided Color is not named.");
}

ВАЖЛИВО

Код кольору з Windows Media повертається Жовтий правильно

але SharpDX повертає блакитний колір кольору.

Що таке проблема. Що я "Missing.Can anyone допомогти мені, Коментарі Ласкаво просимо ...

Відповіді:

0 для відповіді № 1

КТР очікує RGBA SharpDX.Color(int rgba) і ви використовуєте ToArgb(). Просто надайте ваш колір у правильному форматі, і він працює.

        //its known color code is yellow
byte colA = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Yellow).A;
byte colR = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Yellow).R;
byte colG = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Yellow).G;
byte colB = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.Yellow).B;

//now it is yellow color
SharpDX.Color aColor = new SharpDX.Color(colR, colG, colB, colA);