Template property defines the appearence of a Control itself and ContentTemplate defines the template of the Content area of a Control. Interesting point from MSDN:
If a Control does not have a ControlTemplate, the Control will not
appear in your application.
This becomes more clear when we take a look at the data types of both properties:
- Template property type is ControlTemplate
- ContentTemplate property type is DataTemplate and you can switch it in runtime using ContentControl.ContentTemplateSelector