2010-09-10 14 views
11

मेरे काफी बड़े WinForm एप्लिकेशन को एक जीयूआई ओवरहाल की आवश्यकता है, लेकिन मैं इसे एक साथ करने के लिए बर्दाश्त नहीं कर सकता। मुझे यह जानने की ज़रूरत है कि क्या मैं धीरे-धीरे इसमें WPF जोड़ सकता हूं, और यदि हां, तो कैसे?WinForm एप्लिकेशन के साथ WPF मिक्सिंग?

क्या मैं WPF संवाद जोड़ सकता हूं?

क्या मैं WinForm के भीतर WPF 'पैनल' जोड़ सकता हूं ताकि मैं WPF तत्वों को एम्बेड कर सकूं?

संपादित

मैं अपने WPF आवेदन में विपरीत और डाल WinForm संवाद कर सकता हूँ?

उत्तर

10

हां, आप अपने WinForms अनुप्रयोगों में WPF नियंत्रण की मेजबानी कर सकते हैं:

Walkthrough: Hosting a 3-D WPF Composite Control in Windows Forms

Walkthrough: Hosting a Composite WPF Control in Windows Forms

+1

दूसरा लिंक अब टूटा हुआ है। एक कारण है कि हमें लिंक-केवल उत्तर पसंद नहीं हैं। –

+0

यहां तक ​​कि पहला लिंक अब उपलब्ध नहीं है :( – Pankaj

+0

@Pankaj - मैंने लिंक अपडेट किए हैं (दूसरे को पूरी तरह बदल दिया है) ताकि वे अब काम कर सकें। अगर मेरे पास समय है, तो मैं वापस आऊंगा और एक उदाहरण के साथ अपडेट करूँगा। –

6

हाँ, मैं सफलतापूर्वक मिश्रित WinForms और WPF है। मैं Win32 ऐप्स में WPF विंडो जोड़ने में भी कामयाब रहा, इस ऐप को एक डीएल में बदल दिया और Win32 विंडोज़ दिखाने के लिए एक WPF ऐप का उपयोग किया जो WPF विंडो दिखाता है।

WinForm या Win32 क्षुधा में WPF खिड़कियों की मेजबानी करने के लिए आप befor आप .Show (अपने WpfWindow इस लाइन की आवश्यकता होगी):

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(myWpfWindow); 

http://msdn.microsoft.com/en-us/library/aa348549.aspx

0

देखें आप सिस्टम में पाया ElementHost नियंत्रण का उपयोग कर सकते .Windows.Forms.Ingrationकरण नामस्थान। आपको WindowsFormsIntegration असेंबली (WindowsFormsIntegration.dll में) के संदर्भ की आवश्यकता होगी

यह नियंत्रण एक खाली कंटेनर है जिसमें आप WPF नियंत्रण डाल सकते हैं उदा।

myElementHost.Child = someWpfControl; 

आप अपने टूलबॉक्स और खींचें में मिल और किसी भी अन्य नियंत्रण की तरह एक WinForm पर इसे छोड़ सकते हैं;

enter image description here

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