Each .NET control has several methods that enable developers that extend that control to either interact with, or alter its functionality. Note that these are not events, but protected methods, that are called at specific points throughout the control's lifetime. As we have already seen in Chapter 5, Using the Right Controls for the Job, each .NET control extends a number of base classes, with each providing certain additional functionality.
In a similar way, each base class also provides a number of these protected methods, that enable us to interact with the control internally. In this chapter, we will also show how we can create our own methods that enable developers that extend our own control classes to adapt or extend their functionality.
Let's first take a look at the protected methods of the Window class:
protected override Size ArrangeOverride(Size arrangeBounds); protected override Size MeasureOverride(Size availableSize); protected virtual...