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

9

我有一个主应用程序,它围绕着System.Windows.Forms.Form构建。用户可以调用一个设置为最上层的旧的System.Windows.Window。我希望Window归主应用程序所有,这样当应用程序最小化时,它也会最小化。

所以我的预期代码是:

TopmostDisplayWindow.Owner = MainAppForm;

然而,Window没有接受Form的Owner方法,Window也没有重载接受Owner参数的Show()方法。

是否有一种简单的方式可以获取MainAppForm的Window,还是需要更复杂的操作?

1个回答

15
您可以使用WindowInteropHelper并设置其Owner属性:
var window = new YourWPFWindow();
WindowInteropHelper helper = new WindowInteropHelper(window);
helper.Owner = this.Handle;
window.Show();

在你的主/父窗体中,使用上述代码,该窗体是一个 Winform Form。当你想要显示你的 WPF 窗口时,请记得添加以下引用:

  1. PresentationCore
  2. PresentationFramework
  3. WindowsBase

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接