【问题标题】:WPF: Popup always floats on top. How do i correct that?WPF:弹出窗口始终浮动在顶部。我该如何纠正?
【发布时间】:2010-10-28 05:46:35
【问题描述】:

在我的应用中打开的弹出窗口始终位于顶部。当我最小化应用程序时它会消失。但否则,如果应用程序打开一个新窗口,或者如果我切换到另一个程序而不最小化应用程序,弹出窗口将保持在顶部。当应用失去焦点时如何隐藏弹出窗口?

谢谢

【问题讨论】:

标签: wpf


【解决方案1】:

听起来您需要通过将 Owner 属性设置为创建它的窗口来将弹出窗口的所有者/父级设置为正确的窗口。

【讨论】:

  • 你会怎么做呢? Window 的 Owner 属性必须是非弹窗的 Window?
  • @esylvestre: 创建弹窗时,将弹窗的 Owner 设置为创建时可见的窗口(例如主应用程序窗口)
  • 如何设置弹出窗口的所有者?
  • @Jackson Pope:很遗憾我无法访问 Owner 财产
  • 为什么这个答案会被接受?它不起作用还是我错过了什么?
【解决方案2】:

可以将所有者(父窗口)传递给弹出窗口的构造函数,然后指定

public class PopupWindow: Window
{
    public PopupWindow(Window owner)
    {
        this.Owner = owner;
    }
}

然后打开你的弹出窗口

现在要打开您的弹出窗口,您将使用如下内容:

var popup = new PopupWindow(ownerWindow);
popup.Show();

或者如果调用者是父母(所有者)

var popup = new PopupWindow(this);
popup.Show();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-11
    • 1970-01-01
    相关资源
    最近更新 更多