繁体   English   中英

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

[英]Open a WPF Window from WinForms & link form app with WPF app

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

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

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

在 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 控件。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM