我想找到一种方法来查看在加载XAML时会发生什么。正在实例化哪些类,以什么顺序?正在设置哪些属性,值是什么,以什么顺序?正在调用哪些方法(例如BeginInit,EndInit等),按什么顺序,以及使用什么参数?那种事。
(如果有人对原因感到好奇,那是因为XAML加载器正在做一些神奇的事情我can't duplicate in code,而我正在试图找出它是什么。)
对于如何让我们了解XAML加载器正在做什么,任何人都有其他想法?是否有任何工具(分析器,可能?)可以给我一个调用图?有没有办法在XAML加载器中打开某种日志记录?想法/建议?
编辑:Steve链接到的文章确实有答案,尽管他们的示例代码会让每个事件都显示两次。作为参考,以下是如何在代码中完成此工作(不需要更改app.config)。在InitializeComponent()调用之前添加这些行(或在调试器的“立即”窗口中键入两行):
PresentationTraceSources.Refresh();
PresentationTraceSources.MarkupSource.Switch.Level = SourceLevels.All;
这将导致在VS的“输出”窗口中显示详细输出,包括在幕后神奇地设置的属性。
答案 0 :(得分:1)
您可以使用system.diagnostics跟踪大量绑定和加载。我发现使用这个命名空间有很多问题。它像WPF中的其他所有东西一样笨拙,但它确实有效。你可以看到设置的内容和位置。