What this book covers

Chapter 1, Foundations, introduces the most important concepts in WPF. From the XAML language, to dependency properties, to attached events.

Chapter 2, Resources, discusses WPF’s unique resource system that allows any object to be placed as a resource and consequently shared in an efficient and flexible way.

Chapter 3, Layout and Panels, discusses how WPF manages layout of elements, including looking at the standard layout panels, how they work, and how they can be combined to produce complex and flexible interfaces.

Chapter 4, Using Standard Controls, looks at the major controls in WPF and how they are typically used. The content model is also discussed, along with other control families.

Chapter 5, Application and Windows, takes a look at a WPF application from a higher perspective, including application level resources and the way windows are used and managed.

Chapter 6, Data Binding, discusses the powerful and important concept of data binding and the way it’s used in WPF, including leveraging data templates, converters, and other ideas that make WPF so powerful.

Chapter 7, Commands and MVVM, looks at the way a moderately complex application might be built, by leveraging higher level abstractions known as commands (as opposed to raw events). The MVVM pattern is introduced with some implementation to show how commands, data binding and some extra ingredients can produce a complex, yet manageable, application.

Chapter 8, Styles, Triggers, and Control Templates, shows some of the ways controls can be customized in XAML only, without the need to derive new types for the sake of appearance only.

Chapter 9, Graphics and Animation, provides a tour of the major graphic and animation capabilities of WPF and how they integrate with other mechanisms such as styles and triggers.

Chapter 10, Custom Elements, shows what is required to create custom elements with the considerations that lead to a particular implementation path.

Chapter 11, Threading, discusses WPF’s support for asynchronous operations, so that the UI is responsive at all times, including the support provided in C# 5.0 for performing asynchronous operations more easily.