2010-06-29 13 views
6

पर एक WPF विंडो कैसे जोड़ें I WinForms एप्लिकेशन में बिज़ इकाइयों का निरीक्षण करने के लिए एक HUD विंडो बना रहा हूं।WinForms ऐप

मैं खिड़की की एक पूरी तरह से अलग शैली चाहता था (सामग्री क्षेत्र को कम करना और केवल शीर्षकबायर, कोई सिस्टम बटन नहीं दिखा रहा था) इसलिए मैंने इसके लिए एक WPF एप्लिकेशन बनाया।

समस्या यह है कि मैं चाहता हूं कि यह विंडो मेरे WinForms एप्लिकेशन के अंदर 'लाइव' हो। मैं सिर्फ WPF को स्वामित्व वाले फर्म के रूप में नहीं जोड़ सकता या मुख्य फ़ॉर्म को WPF विंडो के स्वामी के रूप में सेट नहीं कर सकता।

तो, यह कैसे प्राप्त कर सकता है?

संपादित करें: पीएसटी के लिए धन्यवाद मुझे जवाब मिला। यहाँ टुकड़ा है:

System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(_inspector); 
WindowInteropHelper inspectorHelper = new WindowInteropHelper(_inspector); 
inspectorHelper.Owner = this.Handle; 
_inspector.Show(); 

उत्तर

5

एक WPF विंडो एक Win32 विंडो हैंडल/संदर्भ है।

WindowInteropHelper देखें। WPF विंडो की मालिक विंडो सेट करने के लिए आप Win32 (या शायद WinForms समर्थन है?) के साथ इसका उपयोग कर सकते हैं। सावधान रहें हैंडल "स्रोत प्रारंभ" (?) घटना तक मौजूद नहीं है।

हालांकि, केवल WinForms का उपयोग करके, आप जितनी जरूरत हो उतनी टाइटलबार को कस्टमाइज़ करने में सक्षम हो सकते हैं (आप Win32 के माध्यम से ड्राइंग को ओवरराइट कर सकते हैं, और मुझे लगता है कि आप इसे दूर किए बिना सभी नियंत्रण बॉक्स खो देते हैं)।

यदि आप सही कीवर्ड का उपयोग करते हैं तो इस विषय पर बहुत सारे Google परिणाम हैं।

+2

विंडोइंटरोपेलपर ने ठीक काम किया! ऐसा लगता है कि मैंने सही कीवर्ड का उपयोग नहीं किया है, मैं इसके लिए पूरे दिन खोज रहा हूं। फिर से धन्यवाद! – jpsstavares