2011-12-16 19 views
11

में एक विनफॉर्म प्रोजेक्ट में WPF विंडो जोड़ें 10 वीएस 2010 में "नया आइटम जोड़ें" चुनते समय Winforms प्रोजेक्ट से सभी WPF आइटमों तक पहुंच बनाना संभव है? मैं केवल डिफ़ॉल्ट रूप से WPF उपयोगकर्ता नियंत्रण तक पहुंच प्राप्त करता हूं।

मैं Winforms प्रोजेक्ट में एक WPF विंडो जोड़ना चाहता हूं। सिर्फ उपयोगकर्ता नियंत्रण नहीं।वीएस 2010

संपादित करें: लघु जवाब: यह संभव से प्रति होना प्रतीत नहीं होता है, लेकिन यह मैन्युअल WPF संसाधनों और आवश्यक संदर्भ जोड़ने के लिए संभव है।

+1

यह जांचें http://stackoverflow.com/questions/450377/upgrading-a-winforms-app-to-wpf – Atomosk

उत्तर

6

स्पष्ट रूप से आप सीधे नहीं कर सकते हैं, लेकिन आप क्या कर सकते हैं एक नया उपयोगकर्ता नियंत्रण जोड़ना है और फिर इसे विंडो बनाने के लिए कोड को संशोधित करें। बस एक नया WPF प्रोजेक्ट बनाएं, एक विंडो जोड़ें और देखें कि आपको अपने उपयोगकर्ता नियंत्रण को विंडो में बदलने के लिए क्या बदलना है।

+0

मैंने ऐसा करने के बारे में सोचा लेकिन मुझे उम्मीद थी कि यह बहुत सरल और थोड़ा बाल खींचने वाला नहीं है, इसलिए मैंने यह भी कोशिश नहीं की :-) मैं इसे एक शॉट –

+0

दूंगा, वैसे पहला कदम XAML में विंडो टैग के साथ UserControl टैग को प्रतिस्थापित करना होगा और कक्षा को विंडो का विस्तार करना होगा। फिर और क्या देखें। – Tudor

+0

यह शायद सबसे अच्छा समाधान है, और यहां चरण-दर-चरण समझाया गया है: http://www.i-think22.net/archives/2008/08/05/adding-wpf-windows-to-an-existing-windows-form -प्रोजेक्ट/ – surfen

2

यह ऐसा करना संभव है, मैं कई बार बिना किसी समस्या के उपयोग इस तकनीक करने के लिए मिला है:

How to programmatically create a WPF window in a WinForm application

+1

धन्यवाद, यह भी सहायक था। बिल्कुल वही नहीं जो मैंने अपेक्षित था, लेकिन यह मूल्यवान जानकारी देता है। –

4

मेरी राय में "साफ" विकल्प इस योजना का उपयोग कर रहा है:

  1. एक WPF प्रोजेक्ट बनाएं (आपको आवश्यक किसी भी WPF विंडो जोड़ें)। आइए इसे "WPFProject"
  2. उसी समाधान में WinForms प्रोजेक्ट बनाएं ( आवश्यकता के किसी भी फॉर्म को जोड़ें)। आइए इसे "मेनप्रोजेक्ट" कहते हैं।
  3. MainProject में संदर्भ जोड़ें:

  4. PresentationCore
  5. PresentationFramework

    • WPFProject

यही सब है, अब आप अपने MainProject से अपने WPF खिड़कियों को खोल सकते हैं (उदाहरण के लिए। बटन दबाकर):

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     Dim mywpfform = New WPFProject.MainWindow //MainWindow is the default name of your first WPF window. Obviously you can open any other 
     mywpfform .Show() 
End Sub 
+0

डाउनवोट को समझ में नहीं आता है, यह मेरे लिए काम कर रहा है ... –

+2

बिना बताए डाउनवॉटिंग सबसे पुरानी चीज है जो एसओएफ पर हो सकती है, दुर्भाग्य से –