如果我将 Owner 设置为 Window 并以非对话框模式显示它,我会得到两件事:1. 子窗口始终位于父窗口的顶部(虽然仍然可以访问父窗口) 2. 如果我关闭父窗口,子窗口也将关闭
在对话框窗口的情况下,这两点都没有意义: 1. 子窗口独立于 Owner 属性位于父窗口的顶部 2. 您没有机会关闭父窗口
所以我是对的,将 Owner 属性设置为 Dialog 窗口是没有意义的,或者可能有一些论据?
除了HB所说的,
在显示窗口之前设置它的所有者很重要,因为否则可能会在焦点窗口或模式窗口隐藏在其他窗口后面时出现奇怪的错误。为防止此类错误,请将 Owner 属性设置为当前 Window。
Mark Seemann,.NET 中的依赖注入
正如文档指出的那样,有以下原因:
通过调用 ShowDialog 打开子窗口时,还应设置子窗口的 Owner 属性。如果您不这样做,那么您的用户将无法通过按任务栏按钮来恢复子窗口和父窗口。相反,按下任务栏按钮将产生一个窗口列表,包括子窗口和父窗口,供他们选择;仅恢复选定的窗口。
您还应该在通过调用 ShowDialog 打开的窗口上设置 Owner 属性,以确保 UI 自动化的正确行为。