कृपया मेरे उदाहरण में पकड़ा नहीं किए जाते हैं, बस प्रश्न के लिए मेरे साथ सहन:डब्ल्यूपीएफ में, मैं अपनी शैली को ओवरराइड होने से कैसे रोकूं?
मेरी WPF आवेदन में, अगर मैं एक "हरी" पृष्ठभूमि के लिए सभी बक्सें चाहता था, मैं आसानी से स्थापित करेगा यह मेरे आवेदन में है। स्रोत।
<Style TargetType="TextBox">
<Setter Property="Background" Value="Green" />
</Style>
यह काम करता है पूरी तरह से ... (धन्यवाद WPF)। हालांकि, अगर मेरे पास मेरे एप्लिकेशन में टेक्स्टबॉक्स कहीं था तो मैं थोड़ा और स्टाइलिंग जोड़ना चाहता था ... I LOSE मेरी हरी पृष्ठभूमि।
उदाहरण:
<TextBox>
<TextBox.Style>
<Style>
<Style.Triggers>
<Trigger Property="TextBox.IsMouseOver" Value="True">
<Setter Property="TextBox.Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
कि पाठ बॉक्स सही ढंग से लाल अग्रभूमि होगा जब माउस खत्म हो गया है, लेकिन हरे रंग की पृष्ठभूमि पूरी तरह से खो दिया है।
तो, सवाल यह है: मैं डब्ल्यूपीएफ को कैसे बता सकता हूं कि ऊपर से आने वाली सभी स्टाइल पूरी तरह से मिटा दें क्योंकि मेरे पास एक सरल, गैर-विरोधी है, ओह इतनी छोटी शैली कहीं नियंत्रण में शामिल है?
यह सच है, लेकिन मूल रूप से कह रही है की तरह है "आप के लिए है उन सभी चीज़ों को शैलियों को फिर से जोड़ें जिन्हें आप ओवरराइड करना चाहते हैं "। :(- अच्छा जवाब, लेकिन मुझे उस समाधान से नफरत है। –
मैं इसे एक कैस्केडिंग स्टाइल चीज़ के रूप में और अधिक सोचता हूं। ऐसे स्थान हो सकते हैं जहां आप अपनी अन्य शैली ओवरराइड का उत्तराधिकारी नहीं बनना चाहते हैं, या जहां आपके पास शैलियों के विभिन्न सेट हैं विभिन्न परिदृश्यों में एक ही प्रकार का नियंत्रण। इस तरह से आपको अधिक नियंत्रण मिल जाता है, इसलिए मुझे यह बहुत बुरा नहीं लगता है। –
@ टिमोथी, आधारितऑन विशेषता का अर्थ है कि जब भी आप कक्षा उत्तीर्ण करते हैं, तब भी ओओपीएस में, विशेष रूप से शैली को विस्तारित करना संकलन स्तर आप बेस क्लास की सभी कार्यक्षमताओं को नई कक्षा में दोबारा जोड़ते हैं। विरासत का अर्थ है सबकुछ को बनाए रखना/प्रतिलिपि बनाना और कुछ हिस्सों को ओवरराइड करना। –