/ / Sharpdx Giving Não esperado Cor - c #, cores, sharpdx

Sharpdx Giving Não esperado Cor - c #, cores, sharpdx

Eu estava Obter a cor usando o controle Xcedd Color Picker ... Eu tento converter System.windows.Media.Color Para SharpDx.Color Formato, mas não obtendo o resultado esperado.

Eu obtenho o valor da cor do controle usando este Código

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

Então eu mudo a cor do Windows para a cor SharpDx Usando este código

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.");
}

IMPORTANTE

O código de cores da mídia do Windows retorna Amarelo está correto

mas o SharpDX retorna o código de cor azul.

Qual é o problema.O que eu estou ausente.Alguém pode me ajudar, Comentários Bem vinda...

Respostas:

0 para resposta № 1

O coordenador espera o RGBA SharpDX.Color(int rgba) e você usa ToArgb(). Basta fornecer sua cor no formato correto e funciona.

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