2009-12-16 10 views
75

मैं #FF00FF या FF00FF जैसे किसी मान से System.Drawing.Color बनाना चाहता हूं, इसके लिए कोड लिखने की आवश्यकता के बिना। इसके लिए कोई .NET अंतर्निहित पार्सर है?सिस्टम बनाने के लिए कैसे। ड्रॉइंग। रंग अपने हेक्साडेसिमल आरजीबी स्ट्रिंग से?

उत्तर

142
ColorTranslator.FromHtml("#FF00FF"); 
14

जब आप Convert-Class का उपयोग करते हैं तो यह आसान है। ToInt32 समारोह एक दूसरा पैरामीटर जो आधार स्ट्रिंग में है का प्रतिनिधित्व करता है के साथ एक अधिभार है

using System.Drawing 

Color yourColor = Color.FromARGB(Convert.ToInt32("FF00FF", 16)); 
9

ColorConverter वर्ग का उपयोग करें:।

var converter = System.ComponentModel.TypeDescriptor.GetConverter(typeof(Color)); 
color = converter.ConvertFromString("#FF00FF"); 

यह भी जैसे मानक नामित रंग से परिवर्तित कर सकते हैं ConvertFromString ("ब्लू")

मानक .NET प्रकार रूपांतरण तंत्र की चर्चा के लिए here देखें।

51

आप System.Drawing.ColorTranslator स्थिर विधि से HTML का उपयोग कर सकते हैं।

उपयोग:

System.Drawing.ColorTranslator.FromHtml("#FFFFFF"); 
0

FROMNAME विधि मुझे

System.Drawing.Color.FromName("#FF00FF"); 
+0

यह .NET 3.5 के लिए काम नहीं कर रहा है – UNeverNo

0

के लिए काम किया रंग का उपयोग करना चाहते एक निरंतर है, तो सी # उपयोग System.Drawing.Color.FromArgb (0xFF00FF) में,। यह System.Drawing.Color.FromName या System.Drawing.Color.FromHtml से थोड़ा तेज़ है, क्योंकि स्ट्रिंग से पूर्णांक तक पार्सिंग रनटाइम के बजाए संकलन समय पर किया जाता है।

संबंधित मुद्दे