Difference between Control Template and Data Template in wpf
controltemplate, datatemplate, wpf
Solution
A `ControlTemplate` is used to change the look of an existing control. So if you don't want your buttons to look rectangular, you can define a control Template which makes them look oval or any irregular shape. It's a way to customize 'look-less' stock WPF controls ; an alternative to writing your own user-controls. More details
A `DataTemplate` is used to specify how an instance of a specific class (usually a Data Transfer object - an object with properties) is to be rendered visually. e.g. define a `DataTemplate` to visualize a Customer instance in a listbox displaying all customers. More details
Problem
Can someone elaborate the difference between `ControlTemplate` and `DataTemplate` in wpf? What should one use in case of custom controls? Like for example a `StackPanel` which possibly has an `image` and a `TextBox`? It seems confusing in some cases where you define a custom control using the 'Content' property. It would be great if an example of how each can be used in different scenarios can be provided.