2011-06-05 3 views
5
<Style x:Key="MyStyle"> 
    <Setter Property="Window.Background" Value="Orange"/> 
</Style> 

<Button Content="Ok" Style="{StaticResource MyStyle}"/> 

बटन को वास्तव में एक नारंगी पृष्ठभूमि क्यों मिलता है, अगर सेटटर को विंडो के रूप में निर्दिष्ट किया जाता है। बैकग्राउंड?WPF शैलियां - कृपया मुझे यह समझने में सहायता करें कि यह

यह नहीं TextBlock एक नारंगी पृष्ठभूमि देता है:

<TextBlock Style="{StaticResource MyStyle}"/> 

धन्यवाद

उत्तर

5

न तो Button और न ही Window वास्तव मेंको परिभाषित करता हैसंपत्ति, वे दोनों इसे Control से प्राप्त करते हैं।

तो भले ही आपने Window.Background लिखा हो, फिर भी सेटर Control.BackgroundProperty फ़ील्ड का उपयोग कर संपत्ति के लिए बाध्य है जो Button पर भी लागू होता है।

+0

धन्यवाद स्वेन! लेकिन टेक्स्टब्लॉक की पृष्ठभूमि नारंगी नहीं बनाते हैं? टेक्स्टब्लॉक को नियंत्रण से भी विरासत मिलती है ... –

+0

@ गुस्तावो, [टेक्स्टब्लॉक] (http://msdn.microsoft.com/en-us/library/system.windows.controls.textblock.aspx) सीधे 'फ्रेमवर्क एलिमेंट' से प्राप्त होता है, न कि 'नियंत्रण' से। –

+0

बेशक। फ्रेडरिक मेरी गलती को इंगित करने के लिए धन्यवाद। –

2

यह काम करता है क्योंकि Background संपत्ति Control वर्ग है जो दोनों Window और Button पूर्वज के रूप में है से जुड़ा हुआ है