I have been reading two books about Windows Presentation Foundation lately, "Windows Presentation Foundation Unleashed" by Adam Nathan with Daniel Lehenbauer and "Applications = Code + Markup" by Charles Petzold.

These are both excellent books on WPF but they are very different in their approaches and depending on your learning style, you may prefer one over the other.

"Windows Presentation Foundation Unleashed" is printed in colour throughout the book. Code samples look like they do in Visual Studio with syntax colouring. All the illustrations are in colour. This combined with Adam's writing style make the book a pleasure to read. WPF Unleashed starts off with an introduction of concepts including a description of XAML and then dives into controls, positioning and panels. The books goes on to cover databinding, templates, 2D and 3D graphics, animation, audio, video, speech and documents. The final section contains advanced features such as interoperability with Win32, Windows Forms and ActiveX. There are also chapters on User and Custom Controls and layout with Custom Panels. This book covers a lot of ground in around 600 pages and moves at a much quicker pace than Petzold's book. I personally prefer this book because I am already familiar with a lot of the content and it therefore gets to the things I don't already know a lot more quickly.


"Applications = Code + Markup" starts off with simple concepts and then builds on them from chapter to chapter. XAML isn't mentioned in any detail until about half way through the 1000 or so pages and in fact the book is divided into Code and Markup sections (in line with the title I guess). This book contains a lot more code samples (all in C#) to illustrate the concepts as they are introduced in the text. This books also covers all the things you would expect to learn about WPF including controls, grids, panels, tree and list views, data binding, graphical shapes, geometries and paths, graphics transforms and animations. This book doesn't cover 3D graphics but Charles Petzold's web site includes a downloadable chapter on 3D (there are so many pages in the book the extra chapter on 3D wouldn't fit in) and according to this Charles is writing a whole book on Windows 3D for WPF. "Applications = Code + Markup" is very thorough but doesn't move quite fast enough for me. If you are totally new to WPF (but familiar with .NET programming and C#) this is probably the better book.  

So, in summary these are two very good books for learning Windows Presentation Foundation programming especially if you are a developer. A designer will probably find them too code centric.