【问题标题】:Setting a WinForms Form as Owner for a WPF Window将 WinForms 表单设置为 WPF 窗口的所有者
【发布时间】:2015-09-21 17:55:56
【问题描述】:

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

TopmostDisplayWindow.Owner = MainAppForm;

但是,没有采用 Form 的 Window.Owner 方法,并且 Window 没有采用所有者的 Show() 覆盖。

有没有一种简单的方法可以为 MainAppForm 获取一个窗口,还是需要更复杂的方法?

【问题讨论】:

    标签: c# .net wpf windows winforms


    【解决方案1】:

    您可以使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-08-25
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 2014-10-12
      • 1970-01-01
      • 2013-08-20
      • 2013-04-01
      相关资源
      最近更新 更多