我正在使用以下代码在我的 Windows 窗体应用程序中托管 WPF 应用程序:
var clientApplication = Process.Start("C:\\WpfApplication1.exe");
SetParent(clientApplication.MainWindowHandle, this.Handle);
WPF 应用程序作为独立应用程序打开,如何强制它使用主窗口窗体打开
一个“完整的应用程序”,如果它是一个桌面应用程序,至少包含一个Window
对象,因为它是一个窗口,所以它不能托管在任何东西中。您需要做的是从 WPF 应用程序中删除任何顶级 Windows,然后您可以使用ElementHost托管单个视图(UserControls 或其他类型的非窗口元素) 。
编辑:请注意,为了做到这一点,您必须从您的 winforms 项目中引用 WPF 应用程序项目,或者通过反射在运行时加载所有内容。您无法将 .Exe 文件托管在另一个窗口中。