Pro WPF in C# 2008
When.NET first appeared, it introduced a small avalanche of new technologies. There was a whole new way to write web applications (ASP.NET), a whole new way to connect to databases (ADO.NET), new typesafe languages (C# and VB.NET), and a managed runtime (the CLR). Not least among these new technologies was Windows Forms, a library of classes for building W- dows applications. Although Windows Forms is a mature and full-featured toolkit, it’s hardwired to essential bits of Windows plumbing that haven’t changed much in the past ten years. Most significantly, Windows Forms relies on the Windows API to create the visual appearance of standard user interface elements such as buttons, text boxes, check boxes, and so on. As a result, these ing- dients are essentially uncustomizable. For example, if you want to create a stylish glow button you need to create a custom c- trol and paint every aspect of the button (in all its different states) using a lower-level drawing model. Even worse, ordinary windows are carved up into distinct regions, with each control getting its own piece of real estate. As a result, there’s no good way for the painting in one c- trol (for example, the glow effect behind a button) to spread into the area owned by another control. And don’t even think about introducing animated effects such as spinning text, sh- mering buttons, shrinking windows, or live previews because you’ll have to paint every detail by hand.
One of the first detailed books on WPF for.NET 3.5Goes deep into the core of the technology in 1000 pages of content-rich explanationWritten by Matthew MacDonald, author of two highly successful books on WPF's predecessor technology and with a proven track record of explaining breaking technologies clearly and precisely (c.f. Pro ASP.NET 3.5)