【发布时间】:2017-09-26 00:38:23
【问题描述】:
在我的应用程序中,我需要获取所有窗口的列表。
var windows = Application.Current.Windows;
如果我在调试模式下运行我的应用程序,我不仅会在列表中看到我的表单,还会看到由 Visual Studio 调试工具为 XAML 创建的 Microsoft.XamlDiagnostics.WpfTap.WpfVisualTreeService.Adorners.AdornerLayerWindow 实例。
过滤窗口列表以忽略调试工具创建的窗口的正确方法是什么?我不想引用其他程序集并检查是否
window is AdornerLayerWindow
我不想像这样过滤
window.GetType().Name != "AdornerLayerWindow"
还有其他想法吗?
【问题讨论】:
-
为什么不直接在Tools->Options->Debugging->Enable UI Debugging Tools for XAML下关闭它们?
-
当然可以关闭调试工具。在这种情况下,我将无法使用此工具,并且从事此项目的所有其他开发人员将不得不关闭此工具。每次新开发人员加入项目时,我都必须通知调试工具应该关闭。我不认为这是一种正确的做事方式。
-
在我的情况下,关闭 UI 调试工具结果证明是两害相权。谢谢@Clemens!
标签: wpf xaml visual-studio-2015