A custom control is a loosely coupled control defined in a class which derives from the System.Windows.Controls.Control class. You may also derive it from a different custom control, depending on your requirement.
The UI of custom control is generally defined in a resource dictionary inside the resource file. We can create themes for custom control and reuse them in various projects very easily:
Generally, the custom controls are compiled into a dll assembly and can be reused in multiple places very easily. You have total control over its code, and thus it gives you more flexibility to extend the behavior. Once you build and add a reference to the custom control in your project, you can find it in the Visual Studio control toolbox, which will allow you to drag and drop the control in your XAML design view and start working with it.
On the other end, User Control is nothing but a custom control that you derive to control the UI specific to your project. It derives from the...