A custom control is a loosely coupled control defined in a class which derives from Control. 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.
Button, CheckBox, TextBox, and so on, even ListView and GridView, are nothing but custom controls. You can easily load them inside an XAML page.
It's not always possible to use only default control sets that come with the SDK. Sometimes, it is useful to create our own custom control, expose its required properties, and design the template from scratch as per our need.
A custom control generally inherits from the System.Windows.Controls.Control class. You may derive from a different custom control also depending on your requirement.
Custom controls are compiled into a DLL...