Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between User Control, Custom Control and Component?

These are three different things you can add to a project and I am not quite sure if I understand the difference. They all seem to for example show up in the component toolbox when working with a Form. What are some common usage scenarios for each of them? What is the difference?

like image 375
Svish Avatar asked Aug 24 '09 13:08

Svish


People also ask

What is difference between user control and custom control?

UserControl : A control which can reuse the Components in the Applications. The control can be defined in both Xaml and Code-Behind. CustomControl : An UserInterface element that have a distinct behavior which is said as CustomControl.

What is the difference between user control and custom control in WPF?

A customControl can be styled and templated and best suited for a situation when you are building a Control Library. On the contrary, a UserControl gives you an easy way to define reusable chunk of XAML which can be reused widely in your application and when you don't need to use it as a Control Library .

What is the difference between user control and custom control Mcq?

CustomControl is a loosely coupled control w.r.t code and UI while UserControl is a tightly coupled control w.r.t code and UI. When using CustomControl UI can be changed in different projects but for a UserControl UI is fixed and can't have different looks in different project.


1 Answers

The main difference between User Control, Custom Control and Component is that they inherit from different levels in the inheritance tree:

MyComponent    |-> Component  MyCustomControl    |-> Control           |-> Component  MyUserControl    |-> ContainerControl           |-> ScrollableControl                  |-> Control                         |-> Component 

So, in short you get a different amount of pre-wired functionality with the different options.

When would you use the different options? (these are thoughts and opinions, not truths)

  • Create a component if you want to provide functionality without UI (such as Timer components, data sources, ...)
  • Create a custom control if you want to make a component where you have full control over its visual appearance, and you don't want any baggage of unnecessary functionality. Typical cases would be simple controls with limited functionality (such as a button)
  • Create a user control if you are going to combine existing controls into reusable building blocks (such as two lists with buttons where you can move items between the lists).
like image 79
Fredrik Mörk Avatar answered Oct 02 '22 15:10

Fredrik Mörk