UserControl (Composition)
- Composes multiple existing controls into a reusable "group"
- Consists of a XAML and a code behind file
- Cannot be styled/templated
- Derives from UserControl
CustomControl (Extending an existing control)
- Extends an existing control with additional features
- Consists of a code file and a default style in Themes/Generic.xaml
- Can be styled/templated
- The best approach to build a control library
In your case, I think UserControl
would be better; here's an example for you:
<CheckBox Content="Property" IsChecked="{Binding Path=SomeProperty}" />
<ComboBox IsEnabled="{Binding Path=Enabled}" />