This article is currently in the process of being translated into Hindi (~98% done).
Introduction to WPF styles
यदि आप वेब के विकासशील दुनिया से आते हैं, तो HTML और CSS,का उपयोग करने पर आपको जल्दी से एहसास होगा कि XAML HTML जैसा है: टैग का उपयोग करके, आप अपने Application का एक संरचनात्मक Layout को परिभाषित करते हैं। आप अपने Elements को Inline property जैसे Foreground, FontSize और इसी तरह के property ,का उपयोग कर एक निश्चित तरीके से दिखने जैसा बना सकते हैं, जैसे आप स्थानीय रूप से अपने HTML टैग को स्टाइल करते हैं।
लेकिन क्या होता है जब आप तीन अलग-अलग Textblock controls पर सटीक एक ही फ़ॉन्ट आकार और रंग का उपयोग करना चाहते हैं? आप उनमें से प्रत्येक के लिए, वांछित गुणों को कॉपी / पेस्ट कर सकते हैं लेकिन क्या होता है जब तीन Controls 50 Controls हो जाते हैं, जो कई Windows पर मौजूद होते हैं? और क्या होता है जब आपको एहसास होता है कि फॉन्ट आकार 12 के बजाय 14 होना चाहिए?
WPF Style से अवगत कराता है, जो कि XAML है, जैसा कि CSS, HTML के लिए है। Styles का उपयोग करके, आप Properties का एक समूह बना सकते हैं और उन्हें विशिष्ट Controls या एक विशिष्ट प्रकार के सभी Controls, में लगा सकते हैं और CSS की तरह, एक Style दूसरी Style से विरासत में मिल सकती है।
मूलभूत Style का उदाहरण
हम सभी विवरणों के बारे में अधिक बात करेंगे, लेकिन इस परिचय अध्याय के लिए, मैं आपको Style का उपयोग करने के तरीके पर एक बहुत ही मूल उदाहरण दिखाना चाहता हूं:
<Window x:Class="WpfTutorialSamples.Styles.SimpleStyleSample"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="SimpleStyleSample" Height="200" Width="250">
<StackPanel Margin="10">
<StackPanel.Resources>
<Style TargetType="TextBlock">
<Setter Property="Foreground" Value="Gray" />
<Setter Property="FontSize" Value="24" />
</Style>
</StackPanel.Resources>
<TextBlock>Header 1</TextBlock>
<TextBlock>Header 2</TextBlock>
<TextBlock Foreground="Blue">Header 3</TextBlock>
</StackPanel>
</Window>
मेरे StackPanel के Resources के लिए, मैं एक Style परिभाषित करता हूं। मैं WPF को बताने के लिए TargetType Property का उपयोग करता हूं कि इस Style को scope (StackPanel) के भीतर सभी TextBlock Control पर लागू किया जाना चाहिए, और फिर मैं Style में दो Setter Element जोड़ता हूं। Setter elements का उपयोग Target controls के लिए विशिष्ट Properties सेट करने के लिए किया जाता है इस मामले में Foreground और FontSize Properties। Property Property WPF को बताती है कि हम किस Properties को लक्षित करना चाहते हैं, और Value property वांछित मान को परिभाषित करती है।
ध्यान दें कि आखिरी टेक्स्टब्लॉक ग्रे के बजाय नीला है। मैंने आपको यह दिखाने के लिए कि एक नियंत्रण को निर्दिष्ट Style से स्टाइल मिल सकता है, आप Controls पर स्थानीय रूप से इसे ओवरराइड करने के लिए पूरी तरह से स्वतंत्र हैं - नियंत्रण पर सीधे परिभाषित Values हमेशा Style values पर पूर्वता लेंगे।
Summary
WPF Styles ने एक विशिष्ट लुक बनाना बहुत आसान बना दिया है और फिर इसे कई Controls के लिए उपयोग किया जा सकता है, और जब यह पहला उदाहरण बहुत स्थानीय था, तो मैं आपको अगले अध्याय में दिखाऊंगा कि Global Style कैसे बनाएं जाते हैं ।