2010-12-03 24 views
9

जब संभव हो तो मैं सिस्टम रंगों का उपयोग करना चाहता हूं। सिस्टम रंगों में शामिल रंगों को कैसे चुनें?"सिस्टम" रंग (लाल)

WPF दोनों SystemColors वर्ग, WinForms की SystemColors वर्ग और GetSysColor एपीआई समारोह के लिए COLOR_* स्थिरांक कोई रंग है जो चेतावनी के लिए इस्तेमाल किया जा सकता होते हैं। चेतावनी आमतौर पर लाल होती है, लेकिन इसकी कोई गारंटी नहीं है कि यह उपयोगकर्ता द्वारा उपयोग किए जाने वाले सिस्टम रंगों के नजदीक नहीं होगा।

मैं मानक सिस्टम रंगों का उपयोग करके सूची बॉक्स में आइटम प्रदर्शित करना चाहता हूं (आमतौर पर चयनित चयन के लिए सफेद पृष्ठभूमि पर काले रंग का टेक्स्ट, चयनित के लिए नौसेना पर सफेद, चयनित फोकस के लिए हल्के भूरे रंग पर सफेद)। जब कोई आइटम समस्याग्रस्त होता है (उदाहरण के लिए, यह ऑपरेशन से संबंधित है विफल रहा है), मैं ध्यान आकर्षित करने के लिए अपना टेक्स्ट लाल बनाना चाहता हूं। सभी तीन मामलों के लिए एकल रंग का उपयोग करना (चयनित, चयनित फोकस, अचयनित) पहले से ही समस्याग्रस्त है, क्योंकि मुझे हल्के भूरे रंग की पृष्ठभूमि पर लाल पाठ पढ़ने में मुश्किल होती है।

केवल कस्टम रंगों का उपयोग करना और इस प्रकार समस्या से परहेज करना अस्वीकार्य व्यवहार है। उपयोगकर्ता प्रोग्रामों को उनकी सेटिंग्स का सम्मान करने की उम्मीद करते हैं।

चेतावनियों के लिए सही रंग कैसे चुनें?

+4

मैंने सोचा कि चेतावनियां पीले रंग की थीं और त्रुटियां लाल थीं? – Nate

+0

@Nate मुझे डर है कि लाल पाठ की तुलना में सफेद पृष्ठभूमि पर पीले पाठ को प्रदर्शित करना मुश्किल है। :) मैंने शायद ही कभी पीले रंग की चेतावनियों के लिए इस्तेमाल किया है। शायद क्योंकि यह केवल दुर्लभ रूप से इस्तेमाल काले रंग की पृष्ठभूमि पर इस्तेमाल किया जा सकता है। – Athari

+1

शायद एक अलग दृष्टिकोण बेहतर काम करेगा, एक अच्छा उदाहरण के लिए विंडोज इवेंट लॉग की जांच करें। वे इसके बजाय आइकन का उपयोग करते हैं, अधिक सहज (IMHO) क्योंकि सभी पाठ लगातार बना रहता है। – Nate

उत्तर

3

संभवतः एक नया दृष्टिकोण विचार करने योग्य है। विंडोज इवेंट लॉग जैसे रंगीन आइकन का उपयोग करना। सभी पाठों को सुसंगत रखें और विभिन्न प्रकार के डेटा को दृष्टि से अलग करने के लिए रंगीन आइकन का उपयोग करें।

5

"केवल कस्टम रंग और इस तरह समस्या से बचने का उपयोग करना अस्वीकार्य है व्यवहार। उपयोगकर्ता के लिए कार्यक्रमों उनकी सेटिंग का अनुपालन की उम्मीद है।"

लेकिन उपयोगकर्ता चेतावनी के लिए रंग कहां निर्दिष्ट करता है?

यदि आप सिस्टम रंगों पर निर्भर एक आकर्षक रंग चाहते हैं, तो आप चयनित आइटम का रंग ले सकते हैं और इसे थोड़ा सा संतृप्त कर सकते हैं, या इसे अधिक लाल बना सकते हैं (उदाहरण के लिए यह आरजीबी लाल घटक 0xFF होने के लिए बनायेगा, और यह होगा अन्य दो घटकों के माध्यम से उपयोगकर्ता सेटिंग्स पर निर्भर करता है)।

4

इस तरह की समस्या होने के करीब मुझे सबसे करीब एक परियोजना में शामिल किया गया था, हमने यह सुनिश्चित करने के लिए कुछ रंगीन हेरफेर लागू किया था कि सीएडी कार्यक्रम में तत्व पृष्ठभूमि रंग को बदलने वाले उपयोगकर्ता द्वारा "गलती से" छिपे नहीं गए थे। उदाहरण के लिए, यदि पृष्ठभूमि का रंग काला था और सीएडी फ़ाइल में कुछ सफेद तत्व थे, तो सब कुछ अच्छा था। सफेद तत्व स्पष्ट रूप से काले पृष्ठभूमि के खिलाफ दिखाई दे रहे हैं। हालांकि, यदि उपयोगकर्ता एक सफेद पृष्ठभूमि में बदल गया है, तो सफेद तत्व अब दिखाई नहीं दे रहे थे। हमने कुछ तर्क लागू किए हैं जो यह सुनिश्चित करने के लिए तत्व रंग (ड्रॉ के दौरान) में छेड़छाड़ (काफी भारी हाथ से) छेड़छाड़ कर रहे थे। आम तौर पर, यह तर्क केवल तभी लाया जाता है जब तत्व रंग पृष्ठभूमि रंग के बराबर बराबर था। बाद में, हमने पृष्ठभूमि रंग को "रंग" के करीब तत्व रंग बदलने के लिए चेक बढ़ाया। यह तर्कसंगत रूप से सफल था कि कोई तत्व गलती से छुपा नहीं था। हालांकि, परिणामस्वरूप रंग कभी-कभी बहुत ही घृणास्पद थे। यह केवल कुछ पृष्ठभूमि है जब मुझे प्रोग्रामेटिक रूप से रंगों से निपटना पड़ा।

यहां एक post that describes how to pick a good text color for a given background color है। यह शायद सीमित उपयोग का कारण है क्योंकि केवल एक रंग दिखाना नहीं चाहता है, तो आप शायद लाल (या शायद कुछ अन्य रंग) का उपयोग करना पसंद करेंगे और इसे आसानी से पठनीय नहीं किया जा सकता है (या स्पष्ट रूप से किसी समस्या का संकेत नहीं है)।

Here is an article that describes how to modify a color by manipulating brightness and saturation आरजीबी मूल्यों के साथ बेवकूफ़ बनाने के बजाए।

आप सूची में समस्या आइटम को एक सफेद पृष्ठभूमि बना सकते हैं और फिर पृष्ठभूमि के खिलाफ लाल पाठ का उपयोग कर सकते हैं। मैंने बहुत यूआई प्रोग्रामिंग नहीं किया है, इसलिए मैं आपको यह नहीं बता सकता कि यह अभ्यास में कितना आसान या कठिन है (सूची बॉक्स में एक आइटम के पृष्ठभूमि रंग को बदलने के लिए)।

प्रारंभिक बिंदु के रूप में पोस्ट किए गए पहले लिंक का उपयोग करके, आप लाल रंग का परीक्षण कर सकते हैं यह देखने के लिए कि क्या यह कुछ रंग गणित द्वारा "आसानी से पठनीय" है। पृष्ठभूमि रंग से लाल कितनी दूर है? यदि यह "बहुत करीब" है, तो छोड़ दें और एक बेहतर विपरीत रंग प्राप्त करें (जो रंग के समान नहीं है जिसे आप कोई त्रुटि नहीं करते हैं)।

आप कई मानक विंडोज रंग योजनाओं में से प्रत्येक के लिए "चेतावनी" रंग (या रंग) परिभाषित कर सकते हैं (इन योजनाओं में से प्रत्येक को स्विच करके, एक चेतावनी रंग को परिभाषित करके जो आपको दिए गए पाठ रंग और पृष्ठभूमि रंग के लिए संतुष्ट करता है)। यदि उपयोगकर्ता उन योजनाओं में से किसी एक का उपयोग करता है (या कम से कम यदि पृष्ठभूमि रंग और टेक्स्ट रंग आपके द्वारा परिभाषित पृष्ठभूमि/टेक्स्ट रंग संयोजनों में से एक से मेल खाता है), तो बस अपने पूर्वनिर्धारित चेतावनी रंगों में से एक का उपयोग करें। यदि उपयोगकर्ता नहीं है, तो उस रंग को खोजने का प्रयास करें जो आपके पूर्वनिर्धारित रंगों के विरुद्ध उपयोगकर्ता के पृष्ठभूमि रंग और टेक्स्ट रंग की तुलना करके काम कर सकता है और सबसे अच्छा मिलान वाला उपयोग कर सकता है। यदि कोई अच्छा मिलान नहीं है (यानी सभी संभावित पूर्वनिर्धारित चेतावनी रंग कुछ मानदंड दिए गए "आसानी से पठनीय" नहीं होते हैं, तो दिखाई देने वाले स्क्रैच से रंग की गणना करने का प्रयास करें, लेकिन आपके द्वारा प्रतिस्थापित किए जा रहे टेक्स्ट रंग के समान नहीं है।

आप कई रंगीन चेतावनी रंगों को परिभाषित कर सकते हैं जो आपको लगता है कि कुछ रंग सीमाओं के खिलाफ आसानी से पठनीय हैं। शायद आप 16 रंग परिभाषित करें। यदि रंगीन रंग ColorRange1 के भीतर रंगीन रंग, पृष्ठभूमि रंग 2 के लिए रंग 2 में आता है, तो आप रंग 1 का उपयोग करना चुन सकते हैं। मुझे नहीं पता कि आपको यह सुनिश्चित करने के लिए कितने रंगों को परिभाषित करना होगा कि आपके पास सभी संभावित रंग संयोजनों के लिए "अच्छी" पसंद होगी। "हाथ से" चेतावनी रंगों को परिभाषित करके, यदि आप रनटाइम पर चेतावनी रंग उत्पन्न करने की कोशिश करते हैं, तो अपेक्षाकृत "सौंदर्यपूर्ण रूप से सुखदायक" रंगों को प्राप्त करने के लिए आपके पास बेहतर अवसर हो सकता है।

यदि आप किसी दिए गए पृष्ठभूमि रंग के लिए एक चेतावनी रंग को पूर्वनिर्धारित करने में सक्षम हैं (अचयनित कहें), तो आप पृष्ठभूमि रंगों के बीच अनुपात का उपयोग करके चयनित केंद्रित और फ़ोकस किए गए मामलों के लिए संबंधित चेतावनी रंगों को अलग करने में सक्षम हो सकते हैं - उदा। अचयनित बनाम चयनित ध्यान केंद्रित - और उस अनुपात (या विपरीत) को "आधार" चेतावनी रंग में लागू करना।

मुझे दावा नहीं है कि इन सुझावों में से कई (या कोई भी) विशेष रूप से अच्छे हैं। वे केवल कुछ विचार हैं जो मैंने आपके प्रश्न के बारे में पढ़े और सोचा था।

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