2013-08-09 7 views
1

Привет, ребята,WPF в Windows Forms

Я работаю над новым проектом, который на основе Windows Forms C# шаблон. Одно из окон моего программного обеспечения, которое должно быть спроектировано WPF, есть ли способ использовать окно WPF внутри проекта Windows Forms?

Я имею в виду, когда я звоню в новом окне я использую этот код:

Windows w = new Windows(); 
w.Show(); 

, но когда я пытаюсь его на классе WPF это бросает мне ошибку, что она не поддерживается.

Могу ли я сделать что-то подобное с окном WPF?

+1

Я не уверен, можете ли вы использовать все окно, но вы можете определенно разместить wpf-элемент управления внутри WinForms. Взгляните на этот учебник: http://msdn.microsoft.com/en-us/library/ms742215.aspx –

+0

Элемент управления ElementHost можно использовать для размещения элемента управления WPF в форме WinForms. –

+0

Возможный дубликат [Открыть окно WPF в WindowsForm APP] (http://stackoverflow.com/questions/8311956/open-wpf-window-in-windowsform-app) – kmatyaszek

ответ

3

Если вы нашли себя в необходимости открыть WPF окна из программы WinForms:

  1. Создать/Добавить новый проект типа «WPF Пользовательские библиотеки управления»
  2. добавить новый элемент типа " Window (WPF) "
  3. Сделайте свое дело с окном WPF
  4. Из вашего приложения WinForms создайте и откройте окно WPF.

фрагмент кода:

WPFWindow.Window1 wpfwindow = new WPFWindow.Window1(); 
ElementHost.EnableModelessKeyboardInterop(wpfwindow); 
wpfwindow.Show(); 

Однако убедитесь, что вы имеете следующие используя операторы:

using System; //Given 
using System.Windows.Forms; //Given 
using System.Windows.Forms.Integration; //Not so Given. 

См:
How to programmatically create a WPF window in a WinForm application
Open a WPF Window from WinForms & link form app with WPF app
How to add a WPF window to a WinForms App

+0

Примечание: вы должны добавить сборку WindowsFormsIntegration в свой проект, чтобы иметь пространство имен System.Windows.Forms.Integration. Это не то место, где вы ожидаете увидеть его, так как у него нет «.». формат, подобный остальным сборкам. – Jeff

+0

Второе примечание. Вероятно, вам захочется центрировать окно WPF над окном Winform. На этом сайте показано, как: https://jiezhao.wordpress.com/2011/06/22/how-to-set-winform-as-the-owner-of-wpf-window/ – Jeff