在Windows窗体应用程序中托管WPF应用程序

时间:2012-11-12 09:51:49

标签: c# .net wpf winforms

我使用以下代码在Windows窗体应用程序中托管WPF应用程序:

var clientApplication = Process.Start("C:\\WpfApplication1.exe");

SetParent(clientApplication.MainWindowHandle, this.Handle);

WPF应用程序作为独立应用程序打开,如何强制它以主窗口形式打开

1 个答案:

答案 0 :(得分:3)

“完整应用程序”,如果它是一个桌面应用程序,则包含至少1个Window对象,由于它是一个Window,因此无法在任何内容中托管。您需要做的是从WPF应用程序中删除任何顶级Windows,然后您可以使用ElementHost托管单个视图(UserControls或其他类型的非窗口元素)。

编辑:请注意,为了做到这一点,您必须从winforms项目引用WPF应用程序项目,或者通过反射在运行时加载所有内容。你无法将.Exe文件托管在另一个窗口中。