एक शैली में आप नियंत्रण के गुण सेट करते हैं।
<Style x:Key="MyButtonStyle" TargetType="Button">
<Setter Property="Background" Value="Red"/>
</Style>
<Button Style="{StaticResource MyButtonStyle}"/>
इस शैली का उपयोग करने वाले सभी बटनों में उनकी पृष्ठभूमि लाल हो जाएगी।
एक टेम्पलेट में आप नियंत्रण के यूआई (संरचना) को परिभाषित करते हैं।
<ControlTemplate x:Key="MyButtonTemplate" TargetType="Button">
<Grid>
<Rectangle Fill="Green"/>
<ContentPresenter/>
</Grid>
</ControlTemplate>
<Button Template="{StaticResource MyButtonTemplate}"/>
इस टेम्पलेट का उपयोग करने वाले सभी बटनों में एक हरा पृष्ठभूमि होगी जिसे बदला नहीं जा सकता है।
टेम्पलेट में निर्धारित मानों को केवल संपूर्ण टेम्पलेट को बदलकर प्रतिस्थापित किया जा सकता है। शैली में मान को नियंत्रण का उपयोग करते समय मूल्य को स्पष्ट रूप से सेट करके प्रतिस्थापित किया जा सकता है। यही कारण है कि कोडिंग मानों के बजाय टेम्पलेट बाइंडिंग का उपयोग कर नियंत्रण के गुणों का उपयोग करना बेहतर है।
<ControlTemplate x:Key="MyButtonTemplate" TargetType="Button">
<Grid>
<Rectangle Fill="{TemplateBinding Background}"/>
<ContentPresenter/>
</Grid>
</ControlTemplate>
अब टेम्पलेट बटन इसे करने के लिए लागू किया जाता है की पृष्ठभूमि संपत्ति के मूल्य का उपयोग करता है, तो यह अनुकूलित किया जा सकता:
<Button Template="{StaticResource MyButtonTemplate}" Background="Yellow"/>
एक और उपयोगी सुविधा है कि नियंत्रण एक डिफ़ॉल्ट शैली उठा सकते हैं उन्हें एक विशिष्ट शैली के बिना सौंपा जा रहा है। आप टेम्पलेट के साथ ऐसा नहीं कर सकते हैं।
बस एक्स को हटाएं: शैली की मुख्य विशेषता (दोबारा: आप टेम्पलेट्स के साथ ऐसा नहीं कर सकते हैं)। शैली के नीचे दृश्य पेड़ के सभी बटनों में इस शैली को लागू किया जाएगा।
टेम्पलेट्स और शैलियों के संयोजन अतिरिक्त शक्तिशाली है:
<Style TargetType="Button">
<Setter Property="Background" Value="Red"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="Button">
<Grid>
<Rectangle Fill="{TemplateBinding Background"/>
<ContentPresenter/>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
स्रोत
2011-05-26 09:17:48
संबंधित: [आइटम टेम्पलेट बनाम कंट्रोल टेम्पलेट] (http://stackoverflow.com/questions/575389/itemtemplate-vs-controltemplate) – Helen
एमएसडीएन संसाधन, शैलियों और टेम्पलेट्स के बीच अंतर: http://msdn.microsoft.com/ en-us/library/cc295273% 28v = अभिव्यक्ति.40% 29.aspx –