@upsidedowncreature said:
I'm a noob at WPF, it's got a very shallow learning curve (why do people say steep learning curve?)
At first glance WPF might not seem that much different from WinForms, you can drag and drop some controls and then write event handlers and it will work. But when you start digging deeper and want to use WPF like it was supposed to, it quickly becomes a completely different beast. It helps to have knowledge of other fields like XAML is easier to understand if you know HTML+CSS, layouts are easier if you have ever done UIs in Java and so on. But it gets even more complicated than that, you soon find out you have to make all of your data objects DependencyObjects that use DependencyProperties, collections turn into ObservableCollections, event handlers turn into commands (Swing also has something like this).
If you do it right your program will be very uncoupled, UIs would have almost no code, all data is displayed with bindings and converters. Then when you start using background worker threads you find out you need to do all your data access through a Dispatcher object.
Another similarity to Java and HTML is that by default the controls look like crap. You have to make an effort to design an attractive UI. You actually kind of need to have a good UI designer to make it look good. This is also why the code can be separated from the UI to such an extent, the designer can create a fancy UI and hand the XAML file to the programmer who hooks it up to the code.
And if you're talking about design, there is almost no limit to what you can do (why yes, you can restyle your scrollbars!), Microsoft themselves have admitted that the days of consistent UI design are over, every application should look different, just like every website has a unique look. You can see this philosophy in Microsoft's own applications already. Whether that's a good thing or bad thing depends on your viewpoint.
I will also admit that I'm no WPF wizard here, I have only done a couple of small apps in WPF with the help of this book, but I will say this: WPF is very complex and it will take some time to fully master it, but when you do, it's worth it.