views:

312

answers:

2

As a “hardcore” WinForms programmer from a Win32 background I have always used Spy++ to understand what my applications are doing at the UI level including:

  • Seeing what events the controls are sending to each other.
  • Seeing the control tree at run time
  • Finding the control that is drawing part of the display

I then often search for the control name in the source code, very useful when you have to change the UI on a large application you don’t know well.

So how do I do the same with a WPF application?

(You may assume I have access to the source code of the WPF application if needed, however I rather the utility worked without the need for the applications source code.)


Thanks for the answers, I have just searched for “Snoop” in StackOverflow and found a few questions/answers with lists of WPF tools.

+11  A: 

Yes, you can use Snoop.

alt text

Jalfp
+1 Snoop's great.
Martinho Fernandes
++ Snoop's my favourite too. There's others, but they aren't as good as snoop. If you're programming silverlight then there's Silverlight Spy: http://silverlightspy.com/silverlightspy/download-silverlight-spy/
Rob Fonseca-Ensor
Snoop is totally awesome. +1 I also want to point anyone who looks at this question/answer to effort I've done with Snoop at http://snoopwpf.codeplex.com.I have added interop support, 64-bit support, WPF 4.0 support and more. See my blog for more info too: http://www.cplotts.com/2009/12/08/snoop-now-with-64-bit-support-and-more/
cplotts
+5  A: 

I prefer Snoop, but also wanted to point out Mole, which is a Visual Studio debugger visualizer for WPF elements:

alt text

HTH, Kent

Kent Boogaart
I use Mole. But it doesn't work if you debug a partial trust app (XBAP for example), you have to switch to full trust...
Yacoder