Application.Windows 集合是否被视为堆栈?
Is Application.Windows collection treated like a stack?
我目前正在获取活动 window,以便我可以在其上呈现自定义警报。
var activeWindow = Application.Current.Windows.OfType<Window>().FirstOrDefault(x => x.IsActive)
有时 activeWindow 属性 return 为 null,即使我有一个 window w/ focus。
我的问题是,Windows
集合是堆叠 windows 还是不保证顺序?
安全吗
已编辑删除了不应该存在的 lambda
var activeWindow = Application.Current.Windows.OfType<Window>().LastOrDefault()
最后Window会return打开吗?
不是,windows的顺序是由创建时间决定的,不会随着windows变成active/inactive而改变。
因此 LastOrDefault()
不会 return 最后一个 Window 打开,它 return 是 window 最近调用构造函数的 window。
你需要自己做,在App.cs中,添加对最后打开的window的引用,并在window激活时更新引用。当你想显示警报时,如果 window 未激活,请先激活它。
我目前正在获取活动 window,以便我可以在其上呈现自定义警报。
var activeWindow = Application.Current.Windows.OfType<Window>().FirstOrDefault(x => x.IsActive)
有时 activeWindow 属性 return 为 null,即使我有一个 window w/ focus。
我的问题是,Windows
集合是堆叠 windows 还是不保证顺序?
已编辑删除了不应该存在的 lambda
var activeWindow = Application.Current.Windows.OfType<Window>().LastOrDefault()
最后Window会return打开吗?
不是,windows的顺序是由创建时间决定的,不会随着windows变成active/inactive而改变。
因此 LastOrDefault()
不会 return 最后一个 Window 打开,它 return 是 window 最近调用构造函数的 window。
你需要自己做,在App.cs中,添加对最后打开的window的引用,并在window激活时更新引用。当你想显示警报时,如果 window 未激活,请先激活它。