2011-03-31 12 views
5

काम नहीं करती है मेरे पास स्थिति है कि मेरे सी # डब्ल्यूपीएफ एप्लिकेशन में एक सूची दृश्य है जिसका तत्व विस्तारक हैं। उनमें से प्रत्येक विस्तारक में ListViewItems के साथ ListView शामिल है। यहां एक तस्वीर है: enter image description hereलिस्ट व्यू वाले एक्सपेंडर वाले सूची दृश्यों की स्क्रॉलिंग

दाईं तरफ आप स्क्रॉलबार देख सकते हैं। और वह स्क्रॉलबार मेरी समस्या है।

  1. स्क्रॉलबार विस्तृत सूची से अधिक माउसव्हील का उपयोग कर काम नहीं करता है: यह दो मुद्दों मिल गया है। इसके द्वारा मेरा मतलब है "नियंत्रक" से क्षेत्र "पूर्ण स्थापना" तक। यदि शीर्षलेख ("सभी टेस्ट") पर होवर करना है, तो स्क्रॉलबार स्क्रॉल करता है। मुझे लगता है कि डिफ़ॉल्ट रूप से एक्सपेंडर के अंदर ListView एक स्क्रॉलबार है जो माउसहेल घटना "चोरी" करता है। हालांकि, मुझे नहीं पता कि इसके खिलाफ क्या करना है।

  2. स्क्रॉलबार विस्तारक वस्तुओं पर स्क्रॉल करता है और विस्तारक की सामग्री नहीं। इसका मतलब है कि, थोड़ा सा स्क्रॉल करना संभव नहीं है, इसके बजाय आप हमेशा कम से कम 1 एक्सपेंडर आइटम को नीचे स्क्रॉल करते हैं। मैं स्क्रॉलबार को स्क्रॉल करना चाहता हूं कि उदाहरण के लिए "ऑल टेस्ट" एक्सपेंडर का आधा हिस्सा देखना संभव है।

चित्र एक अक्षम स्क्रॉलबार दिखाता है, लेकिन खिड़की को छोटा बनाकर, स्क्रॉलबार सक्षम हो जाता है। बाहरी ListView बाहर

  1. ScrollViewer:

    क्या मैं अब तक की कोशिश की है इस को हल करती है समस्या 1, हालांकि इसका मतलब है कि माउसव्हील बिल्कुल काम नहीं करता है! इसका कारण यह है कि बाहरी सूची दृश्य अपने स्वयं के स्क्रॉलव्यूअर (इसे खोजने के लिए स्नूप का उपयोग करता है) उत्पन्न करता है जो माउसहेल घटनाओं को "चुराता है"। सभी नियंत्रण की

  2. रीडायरेक्ट सभी माउसव्हील घटनाओं (ListView, Expander, ListViewItem) ScrollViewer करने के लिए: फिर मैं एक ScrollViewer बाहरी ListView के बाहर किया जाता है और इस समय मैं अपने सभी नियंत्रण के लिए माउसव्हील घटना का इस्तेमाल किया बाहरी स्क्रॉल व्यूअर की माउसहेल घटना को कॉल करें। यह काम किया, हालांकि माउस पॉइंटर के कुछ स्थानों के लिए यह नहीं था। उदाहरण के लिए दो ListViewItems के बीच एक छोटी 1 मिलीमीटर स्पेस है जहां MouseWheel ईवेंट कैच नहीं किया जाता है। या अंतिम विस्तारक ("शॉर्ट टेस्ट") के बाद नीचे। वहां मुझे कोई घटना नहीं मिलती है।

मैंने कुछ और चीजों की कोशिश की लेकिन आगे नहीं मिला। क्या किसी को यह पता है कि इसे कैसे हल किया जाए?

शुभकामनाएं, ईसाई

उत्तर

4

1) कैसे माउसव्हील व्यवहार को नियंत्रित करने के लिए एक संलग्न व्यवहार लिखने के लिए जब आप itemscontrols नेस्ट है के लिए देखें: WPF Nested ScrollViewer/ListBox Scrolling

2) गैर आभासी ItemsControl आसान स्क्रॉलिंग का समर्थन करता है, देखें: Is it possible to implement smooth scroll in a WPF listview?

+0

नंबर 1 समाधान था! आपका बहुत बहुत धन्यवाद! मेरा दिन बचाया! – Christian

+1

आपका पहला लिंक (एसओ के बाहर) मर चुका है। –

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