A control is any class that represents a visible object in an application.
WPF comes with a lot of UI components such as Button, Label, TextBox, ListBox, etc.
In WPF a class does not need to inherit from the Control class to have a visible presence.
ControlTemplate allows a consumer of a control to change the control's appearance without having to create a new subclass.