2012-08-12 18 views
7

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

इसके लिए सबसे अच्छा WPF नियंत्रण विकल्प क्या होगा? यहां एक छोटा सा उदाहरण दिया गया है जिसके लिए मैं जा रहा हूं। ऊपरी बाएं में सफेद वर्ग वह है जिसे मैं शुरू में प्रदर्शित करना चाहता हूं, और उन्हें बाकी के लिए स्क्रॉल करने की अनुमति देता हूं।

enter image description here

+0

स्क्रॉल क्या एक चादर के पैनल के बारे में के लिए, आप इसे करने के लिए एक स्क्रॉल दर्शक जोड़ सकते हैं स्क्रॉल बनाते हैं, और जब तक आप क्रम में अपनी स्क्रीन डाल दिया और एक ही ऊंचाई चौड़ाई और प्लेसमेंट मुद्दा है पैनल – Clueless

उत्तर

3

ऐसे कई तरीके आप यहाँ करने के लिए कोशिश कर रहे हैं क्या हासिल करना है। यदि प्रदर्शन कोई मुद्दा नहीं है तो मैं वर्चुअलाइजेशन को अनदेखा कर दूंगा और DockPanel आज़माएं कि यहां की कमी यह है कि आपको पंक्तियों को जोड़ने के बजाय आइटम को क्रम में जोड़ना होगा।

एक और विकल्प दो स्टैक पैनलों (प्रत्येक दिशा में एक) का उपयोग करना होगा। यह जोड़ने के मुद्दे को संबोधित करता है, लेकिन अधिक पैनलों के उपयोग की आवश्यकता है।

पिछले दो विकल्पों में से दोनों को अलग-अलग आइटमों की ऊंचाई/चौड़ाई सेट करने की आवश्यकता होगी।

एक अंतिम विकल्प (आपके ग्रिड कितना बड़ा है इस पर निर्भर करता है), पंक्तियों की अवधि वाली वस्तुओं के साथ ग्रिड का उपयोग करना होगा (rowspan संपत्ति का उपयोग करके)। इस विधि की कमी यह है कि मुझे पंक्तियों/स्तंभों की अनिर्दिष्ट संख्याओं के लिए xaml में इस नियंत्रण को बनाने के किसी भी अच्छे तरीके से नहीं पता है, इसलिए आपको पंक्तियों/स्तंभों की आवश्यक संख्या प्राप्त करने के लिए इसे कोड में बनाना होगा।

यदि आपके पास प्रदर्शन समस्याएं हैं तो आप VirtualizingStackPanel का उपयोग करने का प्रयास कर सकते हैं। यदि यह अभी भी आपकी प्रदर्शन आवश्यकताओं को पूरा नहीं करता है तो आपको VirtualizingPanel को उपclass करना होगा और अपनी विशिष्ट आवश्यकताओं को पूरा करने के लिए इसे तैयार करना होगा।

पैनल प्रदर्शन पर अधिक जानकारी के लिए here देखें।

मैं दो StackPanel विधि पहले की कोशिश कर सुझाव देते हैं, तो VirtualizingStackPanel विधि और अंत में, यह है कि अगर काम नहीं करता है, तो कोशिश VirtualizingPanel

पैडिंग आसानी से एक subcontrol पर Margin संपत्ति की स्थापना द्वारा पूरा किया है।

उपयोग ScrollViewer

+0

द्वारा हल किया जाएगा मुझे लगता है कि स्टैकपैनल्स सबसे अच्छा दृष्टिकोण होगा –

+0

महान उत्तर के लिए बहुत बहुत धन्यवाद। मैं आगे बढ़ूंगा और इसे स्वीकार करूंगा और बक्षीस का पुरस्कार दूंगा। मैं स्टैक पैनलों डब्ल्यू/स्क्रॉल व्यूअर का उपयोग करने जा रहा हूं, लेकिन बाएं तरफ चैनल नामों के साथ 1 वर्टिकल स्टैक पैनल और ईपीजी डेटा के लिए प्रत्येक के किनारे एक क्षैतिज स्टैक पैनल होना चाहिए, या सिर्फ एक ब्लॉक क्षैतिज स्टैक पैनलों का, प्रत्येक चैनल के लिए 1, और उसमें चैनल का नाम/आइकन शामिल है? –

+0

@ ब्रेटपॉवेल I शायद स्टैपपैनल के साथ एक स्ट्रैपनेल के साथ आइटम्सपैनल (जो डिफ़ॉल्ट है) लंबवत के लिए और फिर टेम्पलेट के लिए एक क्षैतिज स्टैकपैन के बगल में चैनल के नियंत्रण के साथ एक टेम्पलेट के रूप में एक आइटम कंट्रोल होगा। यह लेआउट और बाध्यकारी सरल बनाना चाहिए। – mydogisbox

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