WPF controls are "carefree." In other words, their appearance is separate from their behavior. More often than not, you really want to customize the look, not the behavior. Unlike the Winforms world, this does not require you to inherit a new control and redefine the visualization. Instead, you set some properties of the control, resorting to overriding the template itself if you cannot get the look you want from other properties.
Note that βavoidβ means exactly that. Avoid inheritance if you can. In cases where you need to change behavior, inheritance may be the best option.
Kent boogaart
source share