![](/img/trans.png)
[英]WinForms app changes its scaling after opening WPF window from form
[英]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.