为对话框窗口设置所有者是否有意义

时间:2013-02-19 18:46:01

标签: .net wpf

如果我将所有者设置为窗口并以非对话模式显示,我会得到两件事: 1.子窗口始终位于父窗口的顶部(同时仍可访问父窗口) 2.如果我关闭父窗口,子窗口也将关闭

如果是对话窗口,两点都没有意义: 1.子窗口独立于所有者属性位于父窗口的顶部 2.您没有机会关闭父窗口

所以我是对的,没有任何意义将所有者属性设置为Dialog窗口,或者可能有一些参数?

2 个答案:

答案 0 :(得分:2)

正如the documentation指出的那样有原因:

  

通过调用ShowDialog打开子窗口时,还应设置子窗口的Owner属性。如果不这样做,那么您的用户将无法通过按任务栏按钮来恢复子窗口和父窗口。相反,按任务栏按钮将生成一个窗口列表,包括子窗口和父窗口,供他们选择;只恢复选定的窗口。

     

您还应该在通过调用ShowDialog打开的窗口上设置Owner属性,以确保UI Automation的正确行为。

答案 1 :(得分:2)

除了H.B.说,

  

在显示窗口之前设置窗口的所有者非常重要,因为   否则奇怪的错误可能发生在聚焦或模态窗口的地方   隐藏在其他窗户后面。要防止此类错误,请设置   所有者属性到当前窗口。

Mark Seemann,.NET中的依赖注入