如何使用 ShowDialog 确定 Window 是否作为模式启动

How to determine if Window was launching as a modal using ShowDialog

我创建了一个 WPF Window。在某些情况下,我想使用 ShowDialog() 显示它,而在其他情况下,我只想使用 Show()。

对于 ShowDialog() 我想设置 DialogResult 一切正常,但是如果 window 使用 Show() 启动并且我设置 DialogResult 我得到异常

DialogResult can be set only after Window is created and shown as dialog. 

如何确定 window 是如何启动的,以便我可以在设置 DialogResult 时设置条件?

检查子对话框上的所有者 属性。如果使用了 Show(),子 window 所有者将不会自动设置,但当您使用 ShowDialog() 时应该自动设置。

可能有多种解决方案,其中之一可能是重写 ShowDialog() 和 show() 方法,这样您就可以发送一个参数来确定调用方式。或者只是在 class.

上设置一个布尔标志