2012-04-02 8 views
10

क्या System.Windows.Clipboard और System.Windows.Forms.Clipboard के बीच कोई अंतर है?क्या System.Windows.Clipboard और System.Windows.Forms.Clipboard के बीच कोई अंतर है?

System.Windows.Forms संस्करण के लिए प्रलेखन विशेष रूप से कहता है कि क्लिपबोर्ड पर किसी ऑब्जेक्ट को स्टोर करने के लिए इसे क्रमबद्ध होना चाहिए और आपके ऐप में एसटीए मॉडल होना चाहिए, लेकिन सिस्टम के लिए प्रलेखन। विन्डोज़ संस्करण ' टी आवश्यकता के रूप में या तो सूची। क्या यह? दो कक्षाएं क्यों हैं? क्या फर्क पड़ता है?

यदि यह महत्वपूर्ण है, तो हमारा ऐप डब्ल्यूपीएफ है और हाँ मुझे पता है कि पूर्व डब्ल्यूपीएफ के लिए है और बाद वाले विंडोज़ के लिए है। फर्म ... लेकिन क्यों? क्यों न केवल सिस्टम का उपयोग करें। विन्डोज़ संस्करण फॉर्म-आधारित ऐप्स के साथ भी, यह सिर्फ एक संदर्भ है और इसके उपयोग में कम प्रतिबंधक है, और एक वस्तु .NET में केवल एक वस्तु है।

+0

हमारे पास WinForms कोड है जिसने सिस्टम विन्डोज़.क्लिबोर्ड का उपयोग समय की शुरुआत के बाद किया है जो अभी टूट रहा है। System.Windows.Forms.Clipboard पर स्विचिंग समस्या को हल किया। क्यूं कर? –

उत्तर

5

सरल: System.Windows.Clipboard (PresentationCore.dll में) WPF के साथ उपयोग के लिए है, जबकि System.Windows.Forms.Clipboard (System.Windows.Forms.dll में) विंडोज फॉर्म के लिए है।

आप अक्सर दोनों असेंबली में समान रूप से समान वर्गों में आते हैं; ऐसा इसलिए है क्योंकि डब्ल्यूपीएफ और विनफॉर्म पर्याप्त रूप से अलग-अलग प्रणालियों पर आधारित हैं कि कई ढांचे एपीआई को अलग-अलग कार्यान्वित किया जाना है। मैंने वास्तव में सिस्टम क्लिपबोर्ड के साथ वास्तव में काम नहीं किया है, लेकिन मेरा अनुमान है कि यह WinForms के निम्न स्तर के Win32 एपीआई के सापेक्ष निकटता के साथ कुछ करने के लिए है। हालांकि, मैं निश्चित नहीं होगा।

चूंकि आप WPF के साथ काम कर रहे हैं, तो आपको System.Windows.Clipboard का उपयोग करना चाहिए, क्योंकि स्पष्ट रूप से कार्यान्वयन WinForms की तुलना में WPF के लिए कार्यान्वयन अलग है।

+1

जबकि हाँ मुझे पता है कि आप उन्हें अपने संबंधित प्लेटफार्मों में उपयोग करना चाहते हैं, लेकिन इससे अंतर की व्याख्या नहीं होती है, और क्यों एक तरफ एक प्रतिबंध है जबकि दूसरा नहीं है, फिर भी वे एक ही COM- आधारित से बात कर रहे हैं क्लिपबोर्ड। यही मैं सोच रहा हूँ। उदाहरण के लिए, सिस्टम के बाद से। विन्डोज़ संस्करण बहुत कम प्रतिबंधक प्रतीत होता है, विंडोज़ ऐप भी इसका उपयोग क्यों नहीं करेगा? – MarqueIV

+0

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

0

सिस्टम। विन्डोज़ नामस्थान WPF (विंडोज़ में जीयूआई बनाने का नया तरीका) के बारे में है, जबकि System.Windows.Forms नामस्थान में फॉर्म (पुरानी शैली) के तत्व शामिल हैं।

+0

उपरोक्त @ बोल्टक्लॉक पर मेरी टिप्पणी देखें, लेकिन संक्षेप में, यह अंतर समझा नहीं रहा है। यह उपयोग समझा रहा है। – MarqueIV

+0

मुझे लगता है कि अंतर यह है कि डब्ल्यूपीएफ सीधे यूआई के लिए डायरेक्टएक्स के साथ काम करता है, जबकि फॉर्म जीडीआई + का उपयोग करता है। तो जीपीयू और अन्य घटकों के साथ काम करने के लिए डब्ल्यूपीएफ कई धागे का उपयोग कर सकता है। –

+1

लेकिन क्लिपबोर्ड के पास यूआई के साथ कुछ लेना देना नहीं है। यह दृश्यों के पीछे डेटा है, इसलिए इसके बारे में कुछ भी नहीं होना चाहिए। – MarqueIV