The interest people are showing in Woodstock is blowing my mind. I have been receiving all types of feedback about it ever since posting the article. Andrew Smith, from Infragistics, pointed out a much smarter way of getting all the properties of an element (including attached properties!). I updated the code and article using his technique instead.
I also received some feedback saying that Woodstock was “timing out” in some situations. It turns out that Visual Studio’s “Debugger Visualizer” feature only allows a visualizer to have a brief amount of time to serialize its data, which is then sent to the visualization display. If your visual tree is really big, or your machine is bogged down from some other process, or your machine just plain old sucks, then Woodstock won’t have a chance to do its work before timing out. I tested it out on Times Reader (which has a gigantic visual tree) and, sure enough, was able to reproduce the problem.
To address the issue I did some optimizations to help speed up the serialization process. The biggest gain was when I made WpfElementProperty a struct instead of a class. Since hundreds of thousands of those instances can be created for one visual tree, it really made a difference. If you see any other ways to optimize the code which saves information about the visual tree in Woodstock, please let me know.
I updated the article and downloads, so I suggest you go and get the latest drop. Enjoy!