Introduction
Consistency in a user interface is an important trait; there are many facets of consistency, one of which is the consistent look and feel of controls. For example, all buttons should look roughly the same – similar colors, the same margins, and so on.
Styles are objects that hold property setters to provide a way to apply a bunch of settings as a group to elements and controls. Control templates provide the ultimate control customization power, allowing the complete replacing of a control's look and feel without affecting its behavior. This is one of the most famous of WPF's traits, very different from the old Win32/WinForms model where looks and behavior were tightly bundled; any customization required code that subclassed/inherited from the base control and provides the appropriate painting logic. In the WPF world, a control template is created entirely in XAML with no code required; designer oriented tools such as Expression Blend make this even easier – and more productive...