C# 在windows窗体应用程序中宿主WPF应用程序

C# 在windows窗体应用程序中宿主WPF应用程序,c#,.net,wpf,winforms,C#,.net,Wpf,Winforms,我正在使用以下代码在Windows窗体应用程序中托管WPF应用程序: var clientApplication = Process.Start("C:\\WpfApplication1.exe"); SetParent(clientApplication.MainWindowHandle, this.Handle); WPF应用程序是作为独立应用程序打开的,如果它是一个桌面应用程序,它至少包含一个窗口对象,因为它是一个窗口,所以不能在任何东西中托管,那么如何强制它使用主窗口窗体打开它。您需

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

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

SetParent(clientApplication.MainWindowHandle, this.Handle);
WPF应用程序是作为独立应用程序打开的,如果它是一个桌面应用程序,它至少包含一个
窗口
对象,因为它是一个窗口,所以不能在任何东西中托管,那么如何强制它使用主窗口窗体打开它。您需要做的是从WPF应用程序中删除任何顶级窗口,然后您可以使用

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

如果是桌面应用程序,则它至少包含一个
窗口
对象,因为它是一个窗口,所以不能托管在任何内容中。您需要做的是从WPF应用程序中删除任何顶级窗口,然后您可以使用


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

Process.Start将始终启动新进程。检查此代码项目链接以了解有关您的问题的一些线索。我不知道您是否希望托管wpf控件。如果您希望在winforms应用程序中托管wpf控件。这里有一个链接,用于说明此问题。我实际上不希望托管完整的应用程序进程。Start将始终启动一个新进程。检查此代码项目链接以了解有关您的问题的一些线索我不知道您是否希望托管wpf控件。如果您希望在winforms应用程序中托管wpf控件。这里有一个链接,不,我实际上希望托管一个完整的应用程序很多,这正是我需要的谢谢,这正是我需要的