/ / Sharpdx देने की उम्मीद नहीं रंग - सी #, रंग, sharpdx

Sharpdx देने की उम्मीद नहीं रंग - सी #, रंग, sharpdx

मैं Xcedd रंग पिकर नियंत्रण का उपयोग कर रंग प्राप्त कर रहा था ... मैं बदलने की कोशिश करता हूं 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;

फिर मैं विंडोज रंग को 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.");
}

जरूरी

विंडोज मीडिया रिटर्न से रंग कोड पीला सही है

लेकिन SharpDX ब्लू कलर कोड लौटाता है।

समस्या क्या है। मैं क्या खो रहा हूँ। क्या कोई मेरी मदद कर सकता है, टिप्पणियाँ स्वागत हे...

उत्तर:

जवाब के लिए 0 № 1

सीटीआर आरजीबीए की अपेक्षा करता है 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);