如何在winform应用程序中显示WPF窗口

时间:2011-02-26 03:07:03

标签: c# wpf winforms

如何在winform applciation中显示WPF窗口?我可以使用Windows1 win = new Windows1(); win.show()?

2 个答案:

答案 0 :(得分:1)

呃,奇怪,这没有答案......就个人而言,我使用 ElementHost 来实现这一点。

这是一个详细的例子: Put WPF control into a Windows Forms Form

例如,我们有一个带有大量WinForm表单的旧WinForm应用程序。但是,每个开发的新Windows都是在WPF中完成的。

能够显示每个新的WPF表单:

  1. 我们有一个主要的winForm表单,它上面有一个很大的ElementHost [只有]
  2. 然后,当我想要显示WPF窗口时,我会进行类似的调用:
  3. //create the winform Hoster, which contains a ElementHost on it
    form_MyWPF_Hoster MyForm = new form_MyWPF_Hoster();
    
    //Create the instance of your WPF control
    form_WPFNewWindows MyWPF = new form_WPFNewWindows();
    
    //Add the WPF control to the elementHost  (it is publicly accessible...i know, it's bad..)
    MyForm.elementHost1.child = MyWPF ;    
    
    //show the WinForm : 
    MyForm.ShowDialog();
    

答案 1 :(得分:1)

This article详细解释了以下答案。

using System;
using System.Windows.Forms;
using System.Windows.Forms.Integration;

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