我目前正在获取活动窗口,以便我可以在其上呈现自定义警报。
var activeWindow = Application.Current.Windows.OfType<Window>().FirstOrDefault(x => x.IsActive)
有时,activeWindow属性返回null,即使我有一个窗口w / focus。
我的问题是,Windows
集合窗口是否存在或者不保证订单?
已修改 删除了不应该存在的lambda
var activeWindow = Application.Current.Windows.OfType<Window>().LastOrDefault()
是否会返回最后一个Window?
答案 0 :(得分:1)
不,窗口的顺序由创建时间决定,并且在窗口变为活动/非活动状态时不会更改。
所以LastOrDefault()
没有返回最后打开的Window,它返回最近调用构造函数的窗口。
你需要自己动手,在App.cs中,添加对最后打开的窗口的引用,并在窗口变为活动状态时更新引用。当您想显示警报时,如果该窗口未激活,请先激活该窗口。