हेक्स रंग मूल्य से SolidColorBrush बनाना


129

मैं हेक्स वैल्यू जैसे #ffaacc से सॉलिडकोलरब्रश बनाना चाहता हूं। मैं यह कैसे कर सकता हूँ?

MSDN पर, मुझे मिला:

SolidColorBrush mySolidColorBrush = new SolidColorBrush();
mySolidColorBrush.Color = Color.FromArgb(255, 0, 0, 255);

इसलिए मैंने लिखा (मेरी विधि के अनुसार रंग प्राप्त होता है #ffaacc):

Color.FromRgb(
  Convert.ToInt32(color.Substring(1, 2), 16), 
  Convert.ToInt32(color.Substring(3, 2), 16), 
  Convert.ToInt32(color.Substring(5, 2), 16));

लेकिन इसने त्रुटि दी

The best overloaded method match for 'System.Windows.Media.Color.FromRgb(byte, byte, byte)' has some invalid arguments

इसके अलावा 3 त्रुटियाँ: Cannot convert int to byte.

लेकिन फिर MSDN उदाहरण कैसे काम करता है?


6
इतना बेवकूफ कि वे डिफ़ॉल्ट #FFFFFF प्रारूप की अनुमति नहीं देते हैं।
MrFox

1
UWP के लिए इनमें से कोई भी काम नहीं
kayleeFrye_onDeck

जवाबों:



17

.NET का उपयोग करके हेक्साडेसिमल कलर कोड से कलर कैसे प्राप्त करें?

यह मुझे लगता है कि आप क्या कर रहे हैं, आशा है कि यह आपके प्रश्न का उत्तर देगा।

अपने कोड को काम में लाने के लिए Convert.ToInt के बजाय Convert.ToByte का उपयोग करें ...

string colour = "#ffaacc";

Color.FromRgb(
Convert.ToByte(colour.Substring(1,2),16),
Convert.ToByte(colour.Substring(3,2),16),
Convert.ToByte(colour.Substring(5,2),16));


9
using System.Windows.Media;

byte R = Convert.ToByte(color.Substring(1, 2), 16);
byte G = Convert.ToByte(color.Substring(3, 2), 16);
byte B = Convert.ToByte(color.Substring(5, 2), 16);
SolidColorBrush scb = new SolidColorBrush(Color.FromRgb(R, G, B));
//applying the brush to the background of the existing Button btn:
btn.Background = scb;

4

यदि आप हर बार रूपांतरण की पीड़ा से निपटना नहीं चाहते हैं तो बस एक विस्तार विधि बनाएं।

public static class Extensions
{
    public static SolidColorBrush ToBrush(this string HexColorString)
    {
        return (SolidColorBrush)(new BrushConverter().ConvertFrom(HexColorString));
    }    
}

तो इस तरह का उपयोग करें: BackColor = "#FFADD8E6".ToBrush()

वैकल्पिक रूप से यदि आप एक ही काम करने के लिए एक विधि प्रदान कर सकते हैं।

public SolidColorBrush BrushFromHex(string hexColorString)
{
    return (SolidColorBrush)(new BrushConverter().ConvertFrom(hexColorString));
}

BackColor = BrushFromHex("#FFADD8E6");

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.