在我的应用程序中,我需要获取所有窗口的列表。
var windows = Application.Current.Windows;
如果我在 Debug模式下运行我的应用程序,我不仅会在列表中看到我的表单,还会看到
Microsoft.XamlDiagnostics.WpfTap.WpfVisualTreeService.Adorners.AdornerLayerWindow
的实例。由 Visual Studio 调试工具为 XAML 创建。过滤窗口列表以忽略调试工具创建的窗口的正确方法是什么?我不想引用额外的程序集并检查是否
window is AdornerLayerWindow
我不想过滤
window.GetType().Name != "AdornerLayerWindow"
还有其他想法吗?
最佳答案
我只是做伎俩window.ActualWidth != 0
.它对我很有用。
Application.Current.Windows
.Cast<Window>()
.Where(w => w.ActualWidth != 0)
.ToList()
.ForEach(w => w.Close());
关于wpf - 如何正确忽略由 Visual Studio 调试工具为 XAML 创建的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46416123/