The past few months I have been diving deeper and deeper into the two main pillars of .NET 3.0 - WPF and WCF. This post by Karsten Januszewski, although a year old, totally resonates even today.
I always laugh a little (on the inside) when I hear "senior" developers claim how all the difficult "real" work is to be found in back-end services and components. They assert that all UI development is easy, and doesn't even require much developer skill. Nothing could be further from the truth, and the new UI framwork (WPF) makes this glaringly obvious.
Basic concepts can be difficult to grasp like the layout system - where controls get to "vote" on their size and position, but it is really up to their container to make the decision. Another one that is hard to get a handle on - control templates and data templates... very powerful indeed, but a completely new approach to build an interface. Or just the whole concept of resources and style resolution. It feels a little bit like CSS... until you realize that nothing really cascades, it only overrides.
Now, don't misinterpret this as a bash towards WPF... I really feel the complexity and learning curve are warranted, and that the platform is above and beyond anything that was available before. But XAML is HARD until you get the swing of it, and don't let anyone try to convince you otherwise.