2009-04-18 9 views
6

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

http://www.greenpeppersoftware.com/confluence/plugins/advanced/gallery-slideshow.action?imageNumber=1&pageId=24870977&decorator=popup&galleryTitle=Task+board+and+transitions

तो बुनियादी तौर पर मैं जीयूआई जहां मैं अन्य एक से खींचें और खींचें कर सकते हैं में स्तंभों करना चाहते हैं।

मेरे प्रश्न हैं:

  1. इस WinForms में आसान होगा या
  2. WPF मैं कहां से शुरू करते हैं?

उत्तर

2

दोनों WinForms और WPF ड्रैगिंग और ड्रॉपिंग को ड्रैगओवर और ड्रॉप लक्ष्य पर ईवेंट के साथ काम करके इसी तरह से किया जा सकता है।

हालांकि WPF के साथ आपके पास अन्य विकल्प हैं। जब आप खींचते हैं तो थंबनेल होने से आप एप्लिकेशन को बेहतर दिखने में सक्षम होंगे (यह Winforms में संभव है लेकिन हासिल करने में कठिन है)।

this WPF sample पर एक नज़र डालें, यह एक सहायक वर्ग का उपयोग करता है और सोचता है कि यह वही करता है जो आपको चाहिए।

0

यह थंब नियंत्रण के कारण WPF में शायद थोड़ा आसान होगा जो ड्रैगिंग के लिए अंतर्निहित समर्थन का उपयोग करना आसान बनाता है। (यदि मुझे सही तरीके से याद है, तो WinForms में आपको माउस ईवेंट स्वयं को संभालने की आवश्यकता होगी, जबकि डब्ल्यूपीएफ थंब आपके लिए यह करता है और उन्हें ड्रैग स्टार्ट, डेल्टा और एंड इवेंट्स में अनुवाद करता है।)

हालांकि यदि आप अधिक परिचित हैं इसके अलावा एक फ्रेमवर्क के साथ शायद थंब नियंत्रण करने वाले अंतर को बौना कर देगा।

आपको टूलकिट/फ्रेमवर्क के लिए भी एक नज़र रखना चाहिए जो आपके लिए इसे संभाल सकता है - मुझे लगता है कि वे WinForms और WPF दोनों (हालांकि सुनिश्चित नहीं हैं) के लिए मौजूद हैं।

2

मैं जॉन के साथ सहमत हूं कि WinForms और WPF एक दूसरे के करीब हैं w.r.t. ड्रेग करें और छोड़ दें। लेकिन डब्ल्यूपीएफ आइटम्स कंट्रोल के लिए "सामान्य आधार" प्रदान करता है, जो उपयोग किए गए अंतिम यूआई तत्वों (सूची बॉक्स, लिस्ट व्यू, ट्री व्यू ... को आसानी से स्विच किया जा सकता है) से अधिक स्वतंत्र करने की इजाजत देता है। और स्पष्ट रूप से डब्ल्यूपीएफ अधिक फैंसी प्रभाव की अनुमति देता है। कुछ ड्रैग एंड ड्रॉप मूल बातें के लिए और एक साफ WPF ड्रैग एंड ड्रॉप दृष्टिकोण के लिए http://www.beacosta.com/blog/?p=53 दोनों:

मैं दृढ़ता से इस ब्लॉग पोस्ट की सिफारिश करेंगे। यह ड्रैग'ड्रॉप के लिए डब्ल्यूपीएफ आइटम नियंत्रणों के लिए एक सामान्य जेनेरिक सहायक का अच्छा कार्यान्वयन दिखाता है, मुझे वास्तव में "सम्मिलन एडॉर्नर" पसंद है। और मुझे ऐसा लगता है कि ड्रैग'ड्रॉप कोड अच्छी तरह से संलग्न गुणों का उपयोग कर उपयोगकर्ता नियंत्रण से अलग हो गया है, जो इसे उपयोग और बनाए रखने में बहुत आसान बनाता है।

0

Darg और ड्रॉप के लिए एक अच्छा तरीका समझाया गया है के रूप में

MouseMove और MouseLeftButtonDown

के combinatination के रूप में एक खींचें का पता लगाने डेटा आप डेटा खींचें और एक DataObject कि प्रारूप में शामिल है बनाने के लिए, चाहते हैं और अनुमत प्रभाव।

DoDragDrop() को

तत्वों आप छोड़ने की अनुमति देना चाहते पर सही पर AllowDrop प्रॉपर्टी सेट को फोन करके खींचने आरंभ करें।

ड्रॉप स्थान पर खींचने का पता लगाने के लिए DragEnter ईवेंट में एक हैंडलर पंजीकृत करें। इवेंट तर्क पर GetDataPresent() को कॉल करके प्रारूप और डेटा देखें। यदि डेटा को छोड़ा जा सकता है, तो उचित माउस कर्सर को प्रदर्शित करने के लिए ईवेंट तर्क पर प्रभाव गुण सेट करें।

जब उपयोगकर्ता माउस बटन को जारी करता है तो ड्रैगड्रॉप ईवेंट कहा जाता है। घटना तर्क में प्रदान की गई डेटा ऑब्जेक्ट पर GetData() विधि को कॉल करके डेटा प्राप्त करें।

आप पूरा लेख here

देख सकते हैं