मेरे पास एक टेक्स्टबॉक्स है जिसे ControlTemplate के माध्यम से परिभाषित किया गया है। ControlTemplate की वजह से, IsEnabled-property को गलत पर सेट होने पर टेक्स्टबॉक्स अब स्वचालित रूप से ग्रे नहीं हो जाता है।एक अक्षम टेक्स्टबॉक्स का पृष्ठभूमि रंग
इस कार्यक्षमता प्रदान करने के लिए, मैं ControlTemplate भीतर निम्नलिखित ट्रिगर का उपयोग करें:
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Foreground" Value="{x:Static SystemColors.GrayTextBrush}" />
</Trigger>
यह ठीक काम करता है। हालांकि मुझे पृष्ठभूमि रंग भी सेट करना है, लेकिन मुझे SystemColors
में इसी प्रविष्टि नहीं मिली है। विकलांग नियंत्रण (टेक्स्टबॉक्स) की पृष्ठभूमि के लिए कौन सी प्रविष्टि सही प्रविष्टि है? SystemColors से कोई और स्रोत है?
मैं एक निश्चित मूल्य का उपयोग नहीं करना चाहता हूं। जैसे Background="#f4f4f4"
सेटिंग, क्योंकि मुझे डर है कि कुछ वातावरण में, अक्षम-पृष्ठभूमि का एक और मूल्य होता है और फिर मेरा नियंत्रण ऐसा नहीं लगता है कि यह भी पढ़ना चाहिए या यहां तक कि अपठनीय भी है (उदाहरण के लिए ग्रेटेक्स्टब्रश का मान # f4 के करीब है)।
+1 धन्यवाद। दिलचस्प पोस्ट, हालांकि मेरे प्रश्न का उत्तर मुझे नहीं मिला है। क्या मुझे कभी याद आ गया है? – HCL
अपनी पृष्ठभूमि के लिए एक निश्चित मान का उपयोग करने के बजाय, आप SystemColors मान का उपयोग करना चाहते हैं, सही? डिफ़ॉल्ट XAML शैलियों को देखकर, ऐसा प्रतीत होता है कि माइक्रोसॉफ्ट SystemColors.ControlBrushKey मान को अक्षम करता है जो नियंत्रण के लिए पृष्ठभूमि रंग के रूप में उपयोग करता है। यह रंग SystemColors.GrayTextBrush के विपरीत होना चाहिए, इसलिए जब नियंत्रण अक्षम हो जाता है तो उपयोगकर्ता मान को पढ़ने में सक्षम होगा। एक महान उत्तर के लिए –
+1। डायनेमिक रिसोर्स के उपयोग पर ध्यान दें ताकि अनुप्रयोग चल रहा हो, जब उपयोगकर्ता विंडोज थीम में रंग बदलता है तो एप्लिकेशन स्वचालित रूप से रंग बदलता है। –