对话框显示后,WPF无法设置所有者属性

本文关键字:设置 所有者 属性 WPF 显示 对话框 | 更新日期: 2023-09-27 18:15:12

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

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

原因是什么?

对话框显示后,WPF无法设置所有者属性

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