2011-04-11 19 views
8

जब WPF रूपों है कि डेटा एंट्री के लिए उपयोग किया जाता है का निर्माण (जैसे बक्सें और comboboxes का एक समूह के बगल में लेबल का समूह) मैंने देखा है दो तरीकों:डब्ल्यूपीएफ में डेटा एंट्री फॉर्म बनाने के लिए सबसे अच्छी विधि?

  • एक मास्टर ग्रिड बनाएँ, यह दो कॉलम में विभाजित , और प्रत्येक फ़ील्ड के लिए Height="auto" और शीर्षलेख और पाद लेख (और सबमिट बटन) के लिए दो पंक्तियों के साथ पंक्तियां जोड़ें, और प्रत्येक लेबल और टेक्स्ट बॉक्स की अपनी पंक्ति है।
  • दूसरी विधि एक मास्टर स्टैकपैन बनाने और उसके अंदर लेबल-टेक्स्टबॉक्स की प्रत्येक जोड़ी के लिए एक क्षैतिज स्टैकपैन बनाने के लिए है।

आप अपने डेटा एंट्री फॉर्म कैसे डिज़ाइन करते हैं? मैं वर्तमान में दो तरीकों के बीच फटा हुआ हूं, शायद एक विकल्प है जिसे मैं अनजान हूं?

संपादित करें: हेनक ने कहा कि मुझे सबसे अच्छा परिभाषित करना चाहिए और मुझे लगता है कि मैं सहमत हूं, सबसे अच्छा मतलब है कि मांगों को बदलने के लिए क्षेत्रों को बनाए रखना, बनाना, संरेखित करना या निकालना सबसे आसान है।

अब तक केवल एकमात्र मानदंड जिसके द्वारा ग्रिड बेहतर है संरेखण की आसानी है।

+3

"सर्वश्रेष्ठ विधि" मापदंड की आवश्यकता है। –

उत्तर

2

निश्चित रूप से पहली विधि!

यह अच्छी तरह से गठबंधन है, खासकर SharedSizeGroup के उपयोग के साथ, ताकि आप अलग-अलग समूह बॉक्स में समान संरेखण कर सकें।

+0

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

1

मैंने दोनों का उपयोग किया है और यह वास्तव में इस बात पर निर्भर करता है कि आपका फॉर्म कैसा दिख रहा है। यदि आपके पास वास्तव में एक सरल लेआउट है जहां आप लेबल और लगभग समान आकार के संबंधित फ़ील्ड होने जा रहे हैं तो आपकी पहली विधि अच्छी तरह से काम करती है। यह आपको दो कॉलम बनाने देता है जो बहुत अच्छी तरह से लाइन होते हैं। हालांकि, यदि आपके क्षेत्र अलग-अलग होते हैं, और ऊंचाई और आप लेआउट के साथ अधिक जटिल होना चाहते हैं तो एक संकर दृष्टिकोण सबसे अच्छा हो सकता है। यदि आप केवल बुनियादी नियंत्रणों पर फ़ील्ड लेबल करने से कहीं अधिक जटिल कर रहे हैं तो आप बॉक्स के बाहर मौजूद चीज़ों का उपयोग करने के बजाय उपयोगकर्ता नियंत्रण बनाना चाहते हैं। एक क्षैतिज और ऊर्ध्वाधर जंजीर तरीके से खेतों को बिछाने के दौरान, ग्रिड लेआउट को बनाए रखना मुश्किल हो जाता है क्योंकि आपको बहुत सारे कॉलम और पंक्तियों के साथ ग्रिड रखने की आवश्यकता होती है। फ़ील्ड और लेबल को आपके संरेखण को सही करने के लिए कॉलम और पंक्तियों को विस्तारित करना होगा। यह काम करता है, लेकिन यदि आप कभी भी फॉर्म को पुनर्गठित करना चाहते हैं तो एक दुःस्वप्न है।

आपके द्वारा लिखे गए कार्यों के लिए, ऐसा लगता है कि पहला दृष्टिकोण सबसे अच्छा है। यदि भविष्य में यह सरल है और भविष्य में कुछ बिंदु यह अधिक जटिल हो जाता है, तो इसे बदलने में आसान है। हालांकि, अगर आपके पास पहले से ही एक जटिल लेआउट है तो एक शुद्ध ग्रिड आधारित दृष्टिकोण शायद सबसे अच्छा नहीं है।

0

अस्वीकरण: मैं अपने ब्लॉग में अपनी कंपनी के उत्पाद के बारे में कुछ नहीं कहूंगा जो फ़ॉर्म को बनाए रखने में तुलना और चुनौतियां देता है।

दोनों ग्रिड और StackPanel Maintanence तो हम फार्म लेआउट बनाने के अलग दृष्टिकोण पर चला गया बुरे सपने, और मैं इस लिंक पर यहाँ हमारे दृष्टिकोण रेखांकित किया है,

http://akashkava.com/blog/296/advanced-data-form-with-ui-atoms-on-wpf-and-silverlight/