2009-11-19 11 views
18

सी # में, कैसे मैं इस # fffff की तरह एक मूल्य का उपयोग कर एक System.Drawing.Color वस्तु, # FGFG01 आदि ...सी # में, मैं एक हेक्स वैल्यू का उपयोग कर सिस्टम कैसे बना सकता हूं। ड्रॉइंग। रंग ऑब्जेक्ट?

+0

अगर आपको क्वेरीस्ट्रिंग से हेक्स मान मिल रहा है, तो सावधान रहें, हैश URL 23% के रूप में एन्कोड किया जाएगा। – Phillip

उत्तर

32
string hexValue = "#000000"; // You do need the hash 
Color colour = System.Drawing.ColorTranslator.FromHtml(hexValue); // Yippee 

संपादित बना सकते हैं: आप हैश की जरूरत है वास्तव में है, या अल्फा मूल्य को ध्यान में नहीं रखा जाएगा। ओह!

+1

"Yippee" –

+0

के लिए एक अच्छा उत्तर + बोनस अंक मेरे अगर (रंग == काला) तुलना को बदलना था क्योंकि वे दो अलग-अलग ऑब्जेक्ट्स हैं, इसलिए स्थिति कभी भी सच नहीं होगी। Yippee टिप्पणी में पकड़ा - बस तुम्हारे लिए! – GenericTypeTea

+0

हां। हश की जरूरत है अन्यथा यह एक त्रुटि – Shyju

3

var मेरा col = color.FromArgb (int x);

तुम भी एक अल्फा मूल्य निर्दिष्ट करने की आवश्यकता ध्यान दें (शायद आप इस के लिए एफएफ, यानी पूरी तरह से अपारदर्शी चाहते हैं, इसलिए रंग हेक्स मूल्य को 0xFF000000 जोड़ने)

+0

+1 फेंक देगा वह एक हेक्स स्ट्रिंग को int में बदलने के लिए Int32.Parse का उपयोग कर सकता है, बस # ड्रॉप करें। –

0
Color.FromArgb(Convert.ToInt32(str.Substring(1), 16)); 
+0

क्या यह 0 का एप्ला मान नहीं देगा जो पारदर्शी है? –

+0

हां, यह करता है, अगर अल्फा समर्थित है। यदि आप नॉनट्रांस्पेरेंट रंग चाहते हैं या रूपांतरण परिणाम में 0xff000000 जोड़ना चाहते हैं तो आपको # एफएफ 123456 का उपयोग करना होगा। – EricSchaefer

1

आप मूल्यों को बदल सकते हैं के साथ शुरू करने के लिए एफएफ? जैसे एफएफएफएफएफएफएफएफ = सफेद। यह शुरुआत में अल्फा मान जोड़ना है।

यदि ऐसा है, तो System.Drawing.Color.FromArgb के साथ मूल्य का विश्लेषण करें। यह int लेता है जहां पहले 8 बिट अल्फा मान होते हैं। 255 अपारदर्शी है।

अपनी स्ट्रिंग को int में बदलने के लिए, Int32.Parse का उपयोग करें। जैसे

String HexColourValue = "FABFAB"; 
System.Drawing.Color colour = System.Drawing.Color.FromArgb(Int32.Parse("FF"+HexColourValue, 
           System.Globalization.NumberStyles.HexNumber)); 

सुनिश्चित करें कि HexColourValue उस में '#' नहीं है सुनिश्चित करें।

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

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