Where Are We?
If the control author didn't give you the right properties to tailor a control's look to your liking, you can replace the look completely with a control template (assuming the control author has allowed such a thing). To this end, all of the built-in controls are "lookless," picking up their default look from the system-wide theme, but leaving you to take it over completely, while keeping the existing behavior intact. If you want to plug into the existing behavior properly, however, some controls have more requirements, which we called the control template "contract."
If a custom template still doesn't give you enough control—perhaps you'd like customized behavior—you'll want to think about building a custom control, which is described in Chapter 18, along with how to support custom control templates on your own custom controls.