我正在寻找一种方法来检查Windows 8商店应用中运行的XAML。基本上,我想要firebug / chrome检查器样式功能,我可以查看运行时生成的XAML源,以调试简单的布局和样式问题。
我尝试过Snoop,Pistachio和WPF Inspector,但没有适用于Windows应用商店应用。我能找到的唯一一个似乎适用于商店应用程序的是XAML Spy,这是90欧元。我无法证明这笔费用是合理的。
还有其他方法可以检查正在运行的XAML吗?
答案 0 :(得分:6)
WinRT XAML Toolkit现在有一个实际的可视化树形调试器。
从NuGet获取它:nuget.org/packages/winrtxamltoolkit.Debugging然后调用WinRTXamlToolkit.Debugging.DC.ShowVisualTree()
以显示应用程序内部的调试工具。这是第三种选择,所以现在你可以使用
WinRTXAMLToolkit.Debugging.VisualTreeDebugger
类 - 使您可以在Visual Studio中调试树
答案 1 :(得分:5)
如果您需要免费工具,可以使用WinRT XAML Toolkit中的VisualTreeDebugger类。它没有XAML Spy那么多,但是你可以得到你付出的代价。我想添加更多的功能,比如你调试的实际可视化,但所需的工作不能证明投入的时间+我不想踩到Koen Zwikstra的地盘。我相信他在这个工具上做得很好。无论如何 - VisualTreeDebugger对我来说已经足够了,所以也许对你来说也足够了。
您可以使用它的方法是将类添加到您的代码中,在XAML中添加引用,如
xmlns:debug="WinRTXamlToolkit.Debugging"
然后在你想要开始调试的控件上放一个钩子,比如
debug:VisualTreeDebugger.BreakOnLoaded="True"
将核心可视化树详细信息作为文本转储到调试器输出窗口(Ctrl + W,O)中并中断转储树的代码,您可以在其中调查“path”变量,其中包含所有列表从调试控件到根的可视树元素,因此如果您需要的内容尚未在输出窗口中转储,则可以查看它们的值。
其他选项包括
debug:VisualTreeDebugger.BreakOnTap="True"
debug:VisualTreeDebugger.BreakOnLayoutUpdated="True"
debug:VisualTreeDebugger.BreakOnLoaded="True"
debug:VisualTreeDebugger.TraceOnTap="True"
debug:VisualTreeDebugger.TraceOnLayoutUpdated="True"
debug:VisualTreeDebugger.TraceOnLoaded="True"
由于它是源代码而且只是一个简单的类 - 您可以轻松地在代码中添加其他内容以进行所需的任何自定义调试。
答案 2 :(得分:3)
XAML Spy就是您所需要的。你可以在http://xamlspy.com找到它。
答案 3 :(得分:3)