我有一个围绕 System.Windows.Forms.Form 构建的主应用程序有一个遗留的 System.Windows.Window 用户可以调用它,它被设置为 Topmost。我希望 Window 归主应用程序所有,因此当应用程序最小化时它会最小化。 所以我预期的代码是
TopmostDisplayWindow.Owner = MainAppForm;
但是,没有采用 Form 的 Window.Owner 方法,并且 Window 没有对采用所有者的 Show() 的覆盖。
有没有一种简单的方法可以为 MainAppForm 获取窗口,还是需要更复杂的方法?
最佳答案
您可以使用 WindowInteropHelper
并设置它的 Owner
属性:
var window = new YourWPFWindow();
WindowInteropHelper helper = new WindowInteropHelper(window);
helper.Owner = this.Handle;
window.Show();
在您的主窗体/父窗体(Winform 窗体
)中使用上述代码。
当您想要显示 WPF 窗口时,请记住添加以下引用:
PresentationCore
PresentationFramework
WindowsBase
关于c# - 将 WinForms 窗体设置为 WPF 窗口的所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32701680/