ChapterÂ 18.Â Custom Controls
One of the benefits of WPF is that you don't need to write custom controls as often as you would have to in many user interface frameworks. If you need to customize the appearance of an existing control or adjust its superficial interactive behavior, WPF provides various tools that can let you do this. In earlier chapters, we saw features such as composability, content models, styling, templates, animation, and integrated graphics support. These let you customize existing controls extensively without having to write a new control type.
Custom controls still have a place, of course. As we saw in ChapterÂ 5, the role of a control is to define essential behavior. For example, although you can customize and animate the visuals of a button to your heart's content, it still retains its essenceâit is just something clickable. If the behavior you require is not provided by any existing controls, and you cannot create it by bolting a few controls together, you will need to write a custom control.
If you want your control to be reusable, you will want it to have the same kind of flexibility that the built-in controls offer, such as support for rich content, styling, and templates. In this chapter, we will see how to make your custom controls take advantage of the same powerful flexibility as the built-in controls.
Custom Control Basics
Before you write a custom control, the first question you should ask is:
Do I really need a custom control?
One of the main reasons ...