What are the different models for Control authoring ?
1. Deriving from UserControl class. Consider this when,
Your control consists of existing components.
You don’t need to support complex customization.
2. Deriving from Control,
You would like the appearance of the control through ControlTemplate.
You would like the control to support different themes.
3. Deriving from FrameworkElement,
You want to have fine-grained control over the appearance of your control beyond what is generally provided.
You want to define the appearance of your control by defining your own render logic.