C# 将WinForms窗体设置为WPF窗口的所有者

C# 将WinForms窗体设置为WPF窗口的所有者,c#,.net,wpf,windows,winforms,C#,.net,Wpf,Windows,Winforms,我有一个围绕System.Windows.Forms.Form构建的主应用程序。有一个用户可以调用的遗留System.Windows.Window,它被设置为最顶层。我希望窗口归主应用程序所有,因此当应用程序最小化时,它将最小化。 所以我期望的代码是 TopmostDisplayWindow.Owner = MainAppForm; 但是,没有采用窗体的Window.Owner方法,Window没有采用所有者的Show()重写 是否有一种简单的方法来获取MainAppForm的窗口,或者需要更

我有一个围绕System.Windows.Forms.Form构建的主应用程序。有一个用户可以调用的遗留System.Windows.Window,它被设置为最顶层。我希望窗口归主应用程序所有,因此当应用程序最小化时,它将最小化。 所以我期望的代码是

TopmostDisplayWindow.Owner = MainAppForm;
但是,没有采用窗体的Window.Owner方法,Window没有采用所有者的Show()重写

是否有一种简单的方法来获取MainAppForm的窗口,或者需要更复杂的操作?

您可以使用并设置它的
Owner
属性:

var window = new YourWPFWindow();
WindowInteropHelper helper = new WindowInteropHelper(window);
helper.Owner = this.Handle;
window.Show();
在Winform
窗体的主窗体中使用上述代码。
要显示WPF窗口时,请记住添加所需的引用:
PresentationCode
PresentationFramework
WindowsBase