在Windows 8 Store Apps/VS2012中检查XAML

ror*_*yok 8 xaml windows-8 windows-runtime winrt-xaml windows-store-apps

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

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

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

Fil*_*kun 6

WinRT XAML工具包现在有一个实际的可视化树形调试器.

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

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

在此输入图像描述


Fil*_*kun 5

如果您想要一个免费工具,可以使用WinRT XAML Toolkit中的VisualTreeDebugger类.它没有XAML Spy那么多,但是你可以得到你付出的代价.我想添加更多的功能,比如你调试的实际可视化,但所需的工作不能证明投入的时间+我不想踩到Koen Zwikstra的地盘.我相信他在这个工具上做得很好.无论如何 - VisualTreeDebugger对我来说已经足够了,所以也许对你来说也足够了.

你可以使用它的方法是将类添加到你的代码中,在你的XAML中添加一个引用

xmlns:debug="WinRTXamlToolkit.Debugging"
Run Code Online (Sandbox Code Playgroud)

然后在你想要开始调试的控件上放一个钩子,比如

debug:VisualTreeDebugger.BreakOnLoaded="True"
Run Code Online (Sandbox Code Playgroud)

它会将核心可视树细节作为文本转储到调试器输出窗口(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"
Run Code Online (Sandbox Code Playgroud)

由于它是源代码而且实际上只是一个简单的类 - 您可以轻松地向代码添加其他内容以执行您需要的任何自定义调试.