Sometimes your custom control is a composite control where your template contains multiple WPF controls. If you want to initialize those controls from code this cannot be done in the constructor of your custom control. To do so, there is an override of the OnApplyTemplate method which is the best place to do Initialization.