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

Sar*_*rah 5 c# wpf hyperlink winforms

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

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

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

Nom*_*101 18

在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();
Run Code Online (Sandbox Code Playgroud)

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

using System; //Given 
using System.Windows.Forms; //Given
using System.Windows.Forms.Integration; //Not so Given.
Run Code Online (Sandbox Code Playgroud)

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

 PresentationCore
 PresentationFramework
 WindowsFormsIntegration
 WindowsBase
 System.Xaml
 YourWpfControlProjectName
Run Code Online (Sandbox Code Playgroud)

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