2010-07-19 9 views
12

मैं अक्सर इस का उपयोग करेंगे:डब्ल्यूपीएफ में एक लेबल और टेक्स्ट बॉक्स को तरफ बनाने का इरादा तरीका क्या है?

<StackPanel> 
    <StackPanel Orientation="Horizontal"> 
    <Label>Username:</Label> 
    <TextBox /> 
    </StackPanel> 
    <StackPanel Orientation="Horizontal"> 
    <Label>Password:</Label> 
    <PasswordBox /> 
    </StackPanel> 
</StackPanel> 

लेकिन यह इस तरह के एक आम परिदृश्य है, मुझे लगता है कम मार्कअप के साथ एक तरह से मौजूद है।

इसके अलावा, क्या कई स्टैक पैनलों का उपयोग करने का प्रदर्शन प्रभाव है?

धन्यवाद!

+3

यह एक्सएमएल आधारित है - यह अत्यधिक वर्बोज़ होना चाहिए ;-) –

+1

आपके द्वारा दिखाया गया मार्कअप विजुअल स्टूडियो या एक्सप्रेशन ब्लेंड जेनरेट मार्कअप की तुलना में कमजोर है - डिजाइनर का उपयोग करके अपने नियंत्रण को व्यवस्थित करने का प्रयास करें (यानी उन्हें खींचें) ।आप देखेंगे कि मेरा क्या मतलब है, और फिर शायद लेआउट के लिए फिर से डिजाइनर का उपयोग नहीं करना चाहेंगे। आपके पास क्या समस्या नहीं है! – Pwninstein

उत्तर

3

ऐसा करने के दो प्राथमिक तरीके, StackPanels और ग्रिड परिभाषाएँ हैं, और GridStackPanel से किसी भी कम मार्कअप प्रदान नहीं करता है। मैं व्यक्तिगत रूप से ग्रिड परिभाषा का उपयोग करना पसंद करता हूं। उन्हें उपयोग करने में थोड़ी देर लगती है, और हर अब और फिर भी मैं StackPanel का उपयोग करता हूं, लेकिन कुल मिलाकर जब आप उन्हें उपयोग करते हैं तो वे बहुत साफ महसूस करते हैं। Here is a great tutorial इनका उपयोग कैसे करें।

एक संदर्भ जो भी मदद कर सकता है WPF Grid Vs. StackPanel है।

6

मुझे नहीं पता क्यों, लेकिन मैं DockPanel का बहुत शौकिया बन गया हूं, और मैं आपके द्वारा वर्णित परिदृश्य के लिए उनका उपयोग करता हूं।

<DockPanel> 
    <Label Content="Username:"/> 
    <TextBox Text="Some Text"/> 
</DockPanel> 

पूरे अक्षरों में लिखावट (और बराबर संस्करण, डिफ़ॉल्ट गोदी स्थिति छोड़ दिया है के बाद से):

<DockPanel> 
    <Label DockPanel.Dock="Left" Content="Username:"/> 
    <TextBox DockPanel.Dock="Left" Text="Some Text"/> 
</DockPanel> 

इसके अलावा, यह एक संपत्ति LastChildFill जो true डिफ़ॉल्ट रूप से है, जिससे अंतिम संतान इससे जुड़ा है शेष जगह भरें (मुझे यह सुविधा पसंद है)। तो, उपरोक्त उदाहरणों में, TextBox शेष उपलब्ध क्षैतिज स्थान भर देगा। (आप इसे गलत पर स्विच करके इसे आसानी से बंद कर सकते हैं)

आशा है कि मदद करता है !!

DockPanel documentation

3

मैं ज्यादातर Grid पसंद करते हैं लेबल और बक्सें की बड़ी संख्या के रूप में उपस्थित रहने के लिए, डेटा प्रविष्टि या नियंत्रण की संपत्ति ग्रिड तरह तरह की जरूरत है। ग्रिड पंक्तियों के कॉलम के width/height को नियंत्रित करने और width/height मूल्य को एक ही स्थान पर बदलने के लिए बहुत अधिक शक्ति प्रदान करता है, सभी पंक्तियों को प्रभावित करेगा।

Grid का उपयोग करने का एक और लाभ संरेखण है, सभी लेबल और टेक्स्टबॉक्स (या अन्य नियंत्रण) सही ढंग से गठबंधन किए जाएंगे। Stackpanel या Dockpanel के मामले में आपको उन्हें ठीक से संरेखित करने के लिए प्रत्येक लेबल में wdth को स्पष्ट रूप से सेट करना होगा।

आप ग्रिड में GridSplitter का भी उपयोग कर सकते हैं जो किग्रीज्रिड नियंत्रणों में बहुत उपयोगी हो सकता है।

यदि केवल एक या दो ऐसी पंक्तियों की आवश्यकता है और संरेखण कोई चिंता नहीं है तो आप Dockpanel या StackPanel के साथ आगे बढ़ सकते हैं।

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

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