5

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

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

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

4

3 回答 3

20

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

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

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

将 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 项目中,方法是右键单击解决方案资源管理器中的引用文件夹并添加新引用。所有参考都位于框架选项卡中,没有解决方案选项卡中的 WPF 控件。

于 2013-05-12T19:59:21.163 回答
0

尝试在您的项目中引用 windowbase.dll。还要确保“复制本地”属性设置为 true。

于 2015-07-10T20:56:01.453 回答
0

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

于 2020-04-19T09:02:48.717 回答