मैं WinRT में कस्टम नियंत्रण बनाने के तरीके पर कुछ ट्यूटोरियल देख रहा था, और मेरे पास एक प्रश्न है।उपयोगकर्ता नियंत्रण पर टेम्पलेट नियंत्रण का उपयोग कब करें?
मान लें कि मैं एक साधारण नियंत्रण बनाना चाहता हूं जिसमें कुछ सामान शामिल हैं, जैसे बाईं ओर एक छवि के साथ ग्रिड और दाईं ओर कुछ टेक्स्टब्लॉक।
मेरा मतलब है, कुछ सरल की तरह:
<Grid Height="100">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.3*"/>
<ColumnDefinition Width="0.7*"/>
</Grid.ColumnDefinitions>
<Image Source"/Assets/someRandomImage.png"/>
<StackPanel Grid.Column="1"
VerticalAlignment="Center">
<TextBlock Text="Some text"
Margin="10,0,10,0"
FontSize="24"
FontWeight="SemiLight"
TextTrimming="CharacterEllipsis"/>
<TextBlock Text="Some random description..."
Margin="10,5,10,0"
FontSize="18"
FontWeight="Light"
Foreground="Gray"
TextWrapping="Wrap"
TextTrimming="CharacterEllipsis"/>
</StackPanel>
</Grid>
मैं इस सामग्री के साथ एक UserControl बन जाएगा, तो मैं XAML डिज़ाइनर में यह देखने के लिए जब मैं अपने यूआई पर काम कर रहा हूँ सक्षम होगा, और मैं उपयोगकर्ता कंट्रोल कोड में सभी गुणों और निर्भरता प्रॉपर्टीज को जोड़ दूंगा।
फिर मैंने देखा कि एक और दृष्टिकोण टेम्पलेट नियंत्रण का उपयोग करना होगा, इसलिए मुझे नियंत्रण कक्षा से विरासत में एक कक्षा बनाना होगा, फिर उपरोक्त XAML कोड को टेम्पलेट के रूप में उपयोग करें और इसे कस्टम नियंत्रण पर लागू करें और वहां बाकी सभी तर्क जोड़ें।
बेशक, मुझे उन लोगों के साथ बातचीत करने में सक्षम होने के लिए नियंत्रण में कुछ यूआईएलमेंट्स को एक्स: नाम संपत्ति भी जोड़नी होगी, लेकिन आपको यह विचार मिल जाएगा।
मैं सोच रहा था, क्या इन दोनों तरीकों में से किसी एक का उपयोग करना ठीक है, या विशेष रूप से उपयोग करने के लिए बेहतर है, और क्यों? इसके अलावा, मुझे UserControls का उपयोग करना पसंद है क्योंकि मैं उन्हें डिज़ाइनर विंडो में देख सकता हूं, और इसके बजाय मैं इसे टेम्पलेट के साथ नहीं कर पाऊंगा, मुझे यह देखने के लिए ऐप चलाने और नियंत्रण का एक उदाहरण बनाना होगा यह वास्तव में दिखता है।
आपकी मदद के लिए धन्यवाद, मुझे लगता है कि मैं इस संदेह के साथ केवल एक नहीं हूँ, इसलिए मुझे आशा है कि इस सवाल का दूसरों के रूप में अच्छी तरह से मदद मिलेगी: डी
सर्जियो
क्या आप UserControl में कार्यक्षमता जोड़ते हैं? या बस एक मौजूदा नियंत्रण कैसे प्रदर्शित किया जाता है? उत्तरार्द्ध के लिए भी एक नियंत्रण टेम्पलेट पर्याप्त होगा http://www.wpftutorial.net/templates.html – treze
मैं कार्यक्षमता जोड़ता हूं: मैं आमतौर पर कुछ बाइंडिंग और शायद एनिमेशन और सामान के लिए कुछ गुण, निर्भरता प्रॉपर्टीज बनाता हूं। अन्य सुविधाओं के लिए, मैं आमतौर पर UserControl के लिए ViewModel बना देता हूं और मैं विधियों और आंतरिक बाइंडिंग जोड़ने के लिए इसका उपयोग करता हूं। – Sergio0694
एक और नोट - आप वीएस या ब्लेंड में डिज़ाइन व्यू में टेम्पलेटेड नियंत्रण देख सकते हैं, जब तक उनके पास कोई तर्क न हो जो डिज़ाइन व्यू को तोड़ देगा। आपको केवल 'UserControl'/'पृष्ठ' में अपने नियंत्रण का एक उदाहरण उपयोग करना होगा और इसे दिखाना चाहिए। –