I’ve said it before. In my opinion, WPF is the single contemporary programming technology (disclaimer: among those that I’ve considered myself) that really requires a book to learn it. Otherwise, trying to dig using just hands on testing – as it’s indeed possible in many other cases – you might think you know enough before you do and you’ll get frustrated every day later because things won’t work the way you’d think they should. This StackOverflow question – that triggered this post – is only an example. I personally have been there too (and after the WPF experience, now I decided that I’ll always learn complex new technologies using books, although it may be unnecessary in some cases, as I’ve seen before WPF.)
But don’t get scared. Mastering WPF by starting learning it from the core instead of from the surface will provide many, many benefits that will overcome any initial time spent reading that book. (My personal favorite book on the topic is this: Adam Nathan – WPF Unleashed, but virtually any high rated WPF book will be OK.) And eventually you’ll know exactly why things work the way they do and you won’t consider this to be wrong anymore. Moreover, you’ll be able to build extraordinary things with WPF so I do still highly recommend it! And not only UI and UX related: sometimes you can use the WPF engines (such as its powerful bindings) for other things too – for example to design some business logic extras that many apps need closer to the UI layer.
Alternatively, you can still use Windows Forms to develop Windows desktop apps – it’s still available. But it will be less interesting and not like HTML/CSS as you might have heared WPF – conceptually – is.