从WinForms&amp ;;打开一个WPF窗口使用WPF应用链接表单应用

时间:2013-05-12 19:49:03

标签: c# wpf winforms hyperlink

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

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

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

3 个答案:

答案 0 :(得分:17)

Open WPF window in WindowsForm APP所以您遇到上述链接教程和问题的问题? “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 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控件。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

检查项目的.NET Framework版本也很重要。 您引用的WPF应用程序必须具有与根项目相同或更低的版本。 花了我很多时间!