2010-01-25 16 views
11

एचटीएमएल में जेनेरिक कंटेनर नियंत्रण एक डीआईवी है। यह अपने आप पर कुछ भी नहीं करता है, लेकिन यह सामान को लटकाने के लिए एक महान जगह बनाता है।डब्ल्यूपीएफ: जेनेरिक कंटेनर नियंत्रण क्या है?

इसी प्रकार WinForms में जेनेरिक कंटेनर नियंत्रण पैनल था। दोबारा, मैं बाद में अन्य नियंत्रणों को लोड करने के लिए एक प्लेसहोल्डर के रूप में उपयोग करता हूं।

मुझे WPF के लिए क्या उपयोग करना चाहिए?

उत्तर

15

अधिक सामान्यतः प्रयोग किया कंटेनर से कुछ हैं:

Grid
StackPanel
DockPanel
WrapPanel
Canvas

भी MSDN Panels Overview देखें।

+0

इसमें जोड़ने के लिए, यह सब उस बाद के लोड किए गए नियंत्रणों के साथ आपको क्या करने की आवश्यकता है इस पर निर्भर करता है। अर्थात। उनके पास क्या लेआउट होना चाहिए, आदि। उन मामलों में से एक में मैं ग्रिड के साथ गया था। और यदि आपको एकाधिक नियंत्रण लोड करने की आवश्यकता है तो डॉकपैनल शायद अच्छा नहीं है। – Joey

+0

इस मामले में मैं जितनी संभव हो उतनी धारणाएं चाहता हूं। किसी लेआउट को कॉन्टोल लोड होने से संभाला जाना चाहिए, इसलिए एक नियंत्रण प्रतिबंध समझ में आता है। –

+0

मैं जिस साधारण उत्तर की अपेक्षा कर रहा था, वह नहीं था, लेकिन वह लिंक वास्तव में अच्छा पढ़ा गया था। –

16

मुझे लगता है कि आप जो खोज रहे हैं उसके सबसे नज़दीकी चीज ContentControl है। यह स्वयं का कोई लेआउट नहीं है और इसमें कोई डिफ़ॉल्ट यूआई नहीं है (जब तक कि आप इसे एक या दोनों को करने के लिए टेम्पलेट नहीं करते) लेकिन कोई ऑब्जेक्ट ले सकते हैं क्योंकि यह Content प्रॉपर्टी (WPF UIElement या अन्यथा) है और सीएलआर ऑब्जेक्ट के लिए कोई यूआई प्रदान करता है DataTemplate ने अपनी ContentTemplate संपत्ति को सौंपा। उस संबंध में यह अन्य सामग्री इंजेक्ट करने के लिए एक अच्छी जगह प्रदान करता है (जैसे HTML में div)। यह कई मानक अंतर्निर्मित नियंत्रणों के लिए बेस क्लास भी होता है: Button, ListBoxItem, UserControl, Window

WPF पैनलों प्लेसहोल्डर के लिए के रूप में अच्छी तरह से काम नहीं करते क्योंकि वे टेम्प्लेट नहीं किया जा सकता या बच्चों बाइंडिंग के माध्यम से निर्धारित किया है, मामलों में जहां वे अन्य नियंत्रण कि बाध्य सामग्री इंजेक्शन संभाल में निहित हैं को छोड़कर, जैसे ItemsControl - ItemsPresenter - ItemsPanel रिश्ते।

संबंधित मुद्दे