3

当我更改我的 wpf 应用程序中显示的所有窗口的所有者时,有时我会遇到异常“显示对话框后无法设置所有者属性”

代码

foreach (Window vAlarmWindow in Application.Current.Windows)
{
    if (vAlarmWindow is AlarmWindow && this != vAlarmWindow.Owner && !vAlarmWindow.IsLoaded)
    {
        vAlarmWindow.Owner = this;
    }
}   

可能是什么原因?

4

1 回答 1

3

最有可能的原因是您AlarmWindow在该列表中有一些已经显示和关闭。当Window关闭时,它被卸载。
不幸的是,类中没有属性Window可以告诉您它是否已显示和关闭。为此,您必须处理Window.Closed事件并在您的AlarmWindow班级中设置一些属性

于 2013-05-24T08:29:41.523 回答