使用WPF应用程序从WinForms和链接表单应用程序打开WPF窗口

我正在使用Visual Studio 2012&我正在使用名为Form1的Win Form应用程序并添加一个新项目,即wpf Window被称为“wpfWin”。 我想通过Form1中的一个按钮打开wpfWin,一旦点击它,它打开 – 分开的窗口 – 。

我已经尝试过weblogs.asp,但我还没有找到“WPF自定义控件库”,一旦我跳过它就会出现错误。 还有其他办法吗?!

另外,如何在WinForm和另一个Wpf中链接两个应用程序?

在WindowsForm APP中打开WPF窗口,以便您遇到上述链接教程和问题的问题? “WPF自定义控件库”是您要在Win-Forms应用程序中使用的WPF窗口。

只是一个简短的解释,因为它通过问题和教程解释了几次。 您将需要打开当前正在处理的win-forms项目。 然后,您需要转到解决方案资源管理器并右键单击解决方案,而不是项目,转到“添加”并选择“新建项目”。

在添加新项目中,转到Visual C#,然后转到左侧树中的Windows。 它们应位于已安装的子菜单中。 在主要部分中,您应该看到“WPF Custom Control Library”,然后单击它,然后将其命名为您想要的,然后单击“确定”。

向项目添加一个Window(WPF)控件,该窗口将是您要打开的WPF窗口。

然后从WinForm中打开它,如下所示:

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

但是请确保您拥有以下using语句:

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

您还需要添加一些引用以使其正常工作,以下列表应该是您需要添加到win-forms中的所有内容:

  PresentationCore PresentationFramework WindowsFormsIntegration WindowsBase System.Xaml YourWpfControlProjectName 

您应该使用VS中的引用选择器将这些添加到Win-forms项目中,方法是右键单击解决方案资源管理器中的引用文件夹并添加新引用。 所有引用都位于Framework选项卡中,没有解析选项卡中的WPF控件。

尝试在项目中引用windowbase.dll。 还要确保“Copy Local”属性设置为true。