2011-05-25 3 views
6

मैंने एक विंडोज़ फॉर्म UserControl बनाया है जिसे ActiveX नियंत्रण के रूप में उजागर किया जा सकता है। अब मैं एक WPF UserControl के साथ ऐसा करने की कोशिश कर रहा हूं। Winforms UserControl बेस क्लास मैंने देखा है comVisible हालांकि WPF UserControl क्लास नहीं है। क्या मैं असंभव करने की कोशिश कर रहा हूं?क्या मैं एक WPF UserControl से ActiveX नियंत्रण बना सकता हूं और गैर सीएलआई सी ++ एप्लिकेशन में उपयोग कर सकता हूं?

एक WPF नियंत्रण लिखने के लिए इसे प्राप्त करने का एकमात्र तरीका है और फिर इसे ElementHost का उपयोग करके Winforms UserControl में एम्बेड करें और उसके बाद Winforms UserControl को ActiveX नियंत्रण के रूप में बेनकाब करें?

उत्तर

7

हां, मुझे लगता है कि एलिमेंटहोस्ट वह दृष्टिकोण है जिसका उपयोग करने के लिए आपको इस काम की संभावना होने पर उपयोग करने की आवश्यकता होगी।

ऐसा इसलिए है क्योंकि WPF नियंत्रण मूल रूप से विंडो रहित होते हैं, जिसमें डायरेक्टएक्स सतह के माध्यम से बनाए गए मोड में सबकुछ प्रदान किया जाता है, जो डब्ल्यूपीएफ मैंग्स।

"विंडोलेस" ActiveX नियंत्रणों के लिए इंटरफेस हैं लेकिन .NET द्वारा प्रदान की गई COM इंटरऑप इन्हें WPF ऑब्जेक्ट्स पर भी मैप नहीं करता है।

+1

मुझे एलिमेंटहोस्ट क्लास की मदद से WinForms में काम करने के लिए मिला। मैंने डब्ल्यूपीएफ टेलरिक ग्रिड रैपर लिखा, बाल संपत्ति का उपयोग करके एलीमेहोस्ट में डब्ल्यूपीएफ नियंत्रण जोड़ा, फिर WinForms UserControl को ActiveX नियंत्रण के रूप में उजागर किया। अब यह मेरे गैर-क्ली सी ++ एप्लिकेशन में काम करता है। –

+0

बहुत अच्छा! अच्छा काम। – jschroedl

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

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