【问题标题】:How can I trace what happens during XAML loading?如何跟踪 XAML 加载期间发生的情况?
【发布时间】:2009-06-30 20:58:50
【问题描述】:

我想找到一种方法来查看加载我的 XAML 时会发生什么。正在实例化哪些类,以什么顺序进行实例化?正在设置哪些属性、设置哪些值以及以什么顺序?正在调用哪些方法(例如 BeginInit、EndInit 等),以什么顺序以及使用什么参数?那种东西。

(如果有人好奇为什么,那是因为 XAML 加载器正在做一些神奇的事情,我 can't duplicate in code,我正试图弄清楚它是什么。)

关于如何让我了解 XAML 加载器正在做什么,有人有其他想法吗?是否有任何工具(也许是分析器?)可以给我一个调用图?有没有办法在 XAML 加载器中打开某种日志记录?想法/建议?


编辑:史蒂夫链接到的文章确实有答案,尽管他们的示例代码使每个事件都显示两次。作为参考,以下是如何在代码中进行这项工作(无需更改 app.config)。在 InitializeComponent() 调用之前添加这些行(或在调试器的立即窗口中键入这两行):

PresentationTraceSources.Refresh();
PresentationTraceSources.MarkupSource.Switch.Level = SourceLevels.All;

这将导致详细的输出显示在 VS 的输出窗口中,包括在幕后神奇设置的属性。

【问题讨论】:

    标签: debugging xaml logging


    【解决方案1】:

    您可以使用system.diagnostics 跟踪很多绑定和加载。我发现使用这个命名空间有很多问题。它像 WPF 中的其他所有东西一样笨拙,但它可以工作。您可以看到设置的内容和位置。

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 1970-01-01
      • 1970-01-01
      • 2021-06-15
      • 2011-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多