wpf - 如何正确忽略由 Visual Studio 调试工具为 XAML 创建的窗口

标签 wpf xaml visual-studio-2015

在我的应用程序中,我需要获取所有窗口的列表。

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/

相关文章:

c# - 为什么 ListView.ScrollIntoView 永远不起作用?

.net - 拉伸(stretch)控件以填充 ItemsControl

c# - 从另一个页面更改文本 block 的文本

c++ - Visual Studio 包含错误

visual-studio - 编译允许更新而不是卸载/安装的 Visual Studio 扩展

c# - 为什么 SourceUpdated 事件不触发我在 WPF 中的图像控件?

c# - 在 CellEditEnding 事件上修改 DataGrid 单元格值

asp.net-mvc - 什么是 DWASMod.dll?

c# - 使用 OR 而不是 AND 的 MultiDataTrigger

xaml - UWP:如何从 View 模型中的另一个 ListView 捕获 ListView 部分的点击而不是代码隐藏?