I have been immersing myself in WPF for the past week, building a prototype app for a customer (more like a demo really) that may possibly address one of their business opportunities. This
post by Karsten hits the nail on the head. WOW!
There is a ton of stuff in WPF, and all of is cool, but trying to get a handle on it certainly takes time. I think the one thing the Karsten fails to mention is that one of the tremendous difficulties is that really is not great tool support (minimal at best, is the term that comes to mind) for creating WPF apps. Eventually Expressions Interactive Designer and Visual Studio itself will fill that gap, but right now the coding experience is more circa-1989 HTML dev then what we are used to with ASP.NET or WinForms. IMHO, the tool set from Microsoft is really just Super Notepad with 90% schema Intellisense. But it works and the upside is you really learn WPF that way since your are directly exposed to the markup instead of being shielded by a tool doing the markup for you. I will be a better WPF developer because of it.
The other big "challenge" (can't think of a better word) is that WPF lets you see how bad of a GUI designer you really are! Yes - WPF demos show some amazing things that make applications dance and sizzle, but that is not default behavior my friend. This is where tooling may hurt the most, since one would assume that any tool would at least provide some visual candy (gel buttons, for example) that you just dont get out of the box. My WPF stuff looks even uglier than some of my WinForms stuff just because I am a) not a graphic designer and b) still trying to get a good feel on how styles and layouts work in WPF.
Having said all that, WPF is still very, very cool. I am working a lot with the document rendering and annotation stuff and it is truly amazing what is in there. Very well thought out and extremely flexible. Despite the big curve, I give WPF a big thumbs up.