Ever wondered the difference between UserControl and CustomControl.
UserControl is a composite control. We use UserControl when you want to group similar controls and reuse them across multiple windows/pages. UserControl is not considered as a single control by the logical tree. i.e., if the UserControl contains three buttons and a list box and when this UserControl is used in window, the logical tree of the window can identify each of there controls (buttons and list box).
CustomControl is a single control with a control template located in the “Themes->Generic.xaml” file. When CustomControls are used in a window/page, the logical tree cannot identify its internals. For example, if you want to use snip control (a control that has up and down buttons to scroll values in a textbox), then create a custom control that inherit from Control class and give it a theme (default ControlTenplate).
Okay, now when to use what ??
If you are writing a CustomControl, its template can always be overridden. Which means, if you want to ship a control as a library and if you want it to be customizable by others, then go for CustomControl. Otherwise, its simple, go ahead and use a UserControl
Hope you got the difference now.