如果您需要免费工具,可以使用 WinRT XAML Toolkit 中的VisualTreeDebugger类。它没有 XAML Spy 做那么多,但你得到你所支付的。我想为其添加更多功能,例如实际可视化您调试的内容,但所需的工作并不能证明时间投资是合理的 + 我不想踩到 Koen Zwikstra 的地盘。我相信他在这个工具上做得很好。无论如何 - VisualTreeDebugger 对我来说已经足够了,所以也许它对你来说也足够了。
您可以使用它的方式是将类添加到您的代码中,在您的 XAML 中添加一个引用,例如
xmlns:debug="WinRTXamlToolkit.Debugging"
然后在要开始调试的控件上挂一个钩子,例如
debug:VisualTreeDebugger.BreakOnLoaded="True"
这会将核心可视树详细信息作为文本转储到调试器输出窗口 (Ctrl+W,O) 中,并中断转储树的代码,您可以在其中调查“路径”变量,其中包含所有可视树元素的列表从调试控件到根目录,因此如果您需要的内容尚未转储到输出窗口中,您可以查看它们的值。
其他选项包括
debug:VisualTreeDebugger.BreakOnTap="True"
debug:VisualTreeDebugger.BreakOnLayoutUpdated="True"
debug:VisualTreeDebugger.BreakOnLoaded="True"
debug:VisualTreeDebugger.TraceOnTap="True"
debug:VisualTreeDebugger.TraceOnLayoutUpdated="True"
debug:VisualTreeDebugger.TraceOnLoaded="True"
因为它是源代码并且是一个真正的简单类 - 您可以轻松地向代码添加额外的东西来执行您需要的任何自定义调试。