【问题标题】:window.Owner (behavior expected)window.Owner(预期行为)
【发布时间】:2011-03-20 04:22:39
【问题描述】:

在 XAML 窗口中隐藏此代码我错过了什么

// 创建一个窗口并让这个窗口成为它的所有者 窗口拥有窗口 = 新窗口(); 拥有的Window.Owner = this; 拥有的Window.ShowDialog();

我没有看到这种行为 http://msdn.microsoft.com/en-us/library/system.windows.window.owner.aspx

一旦建立这种关系,就会表现出以下行为:

•如果所有者窗口被最小化,则其拥有的所有窗口也会被最小化。

•如果拥有的窗口被最小化,它的所有者也不会被最小化。

•如果所有者窗口最大化,则所有者窗口及其拥有的窗口都将恢复。

•所有者窗口永远不能覆盖拥有的窗口。

•未使用 ShowDialog 打开的拥有的窗口不是模态的。用户仍然可以与所有者窗口进行交互。

•如果您关闭所有者窗口,其拥有的窗口也会关闭。

•如果拥有的窗口由其所有者窗口使用 Show 打开,并且所有者窗口已关闭,则不会引发所拥有窗口的 Closing 事件。

TIA

【问题讨论】:

    标签: wpf windows xaml


    【解决方案1】:

    ShowDialog() method 将窗口显示为模式对话框,覆盖了大部分此行为。

    您应该调用 Show() 来将窗口显示为子窗口。
    注意Show() 不是阻塞调用;您的下一行代码将立即执行,而不是在窗口关闭之后。

    【讨论】:

    • 感谢 SLaks,msdn.microsoft.com/en-us/library/… 呢?当您通过调用 ShowDialog 打开子窗口时,您还应该设置子窗口的 Owner 属性。
    • @ramnz:什么?如果您想要一个模态对话框,请致电ShowDialog()。如果没有,请致电Show
    猜你喜欢
    • 2012-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-09
    • 1970-01-01
    • 2017-04-22
    相关资源
    最近更新 更多