8

我正在寻找一种方法来检查 Windows 8 商店应用程序中运行的 XAML。本质上,我想要 firebug / chrome 检查器样式功能,我可以在其中查看运行时生成的 XAML 源代码,以调试简单的布局和样式问题。

我尝试过 Snoop、Pistachio 和 WPF Inspector,但没有一个适用于 Windows Store 应用程序。我能找到的唯一一款似乎适用于 Store 应用的是 XAML Spy,售价 90 欧元。我无法证明这笔费用是合理的。

有没有其他方法来检查正在运行的 XAML?

4

4 回答 4

6

WinRT XAML Toolkit 现在有一个实际的可视化 - 可视化树调试器。

从 NuGet 获取它:nuget.org/packages/winrtxamltoolkit.Debugging 然后调用WinRTXamlToolkit.Debugging.DC.ShowVisualTree()以在您的应用程序内显示调试器工具。这是第三个选项,所以现在你可以使用

  • 类 -使WinRTXAMLToolkit.Debugging.VisualTreeDebugger您能够在 Visual Studio 中调试树
  • XAML Spy - 这是一个出色的商业可视化树调试器,在单独的窗口中运行
  • 现在,WinRT XAML 工具包中的这个可视化树调试器可以在您的应用程序内部运行。

在此处输入图像描述

于 2013-06-28T23:18:45.627 回答
5

如果您需要免费工具,可以使用 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"

因为它是源代码并且是一个真正的简单类 - 您可以轻松地向代码添加额外的东西来执行您需要的任何自定义调试。

于 2012-12-13T21:23:51.913 回答
3

XAML 间谍是您所需要的。您可以在http://xamlspy.com找到它。

于 2012-12-12T21:21:32.853 回答
3

有一个名为 XAML Inspector 的新免费工具。它可通过 NuGet 获得。只需搜索“xamlinspector”或从项目页面获取是否:www.xamlinspector.com

在此处输入图像描述

问候基督徒

于 2013-12-21T09:58:59.487 回答