Diferencias entre UserControls y CustomControls – WPF


 

Tenía esta duda de hace mucho, que diferencia había entre estos dos controles? Pues bien, estuve investigando y les voy a mostrar en algo resumido lo que encontré:


UserControl:

Se puede decir que un UserControl es un conjunto de otros controles para crear un control nuevo, donde tenemos un archivo para el “look and feel” que en este caso sería el XAML, y otro donde tenemos el código C# para crear eventos y  propiedades, el UserControl es muy parecido a una ventana, donde adicionamos controles para hacer que la ventana se vea de alguna forma e interactúe también, el control de usuario hereda de la clase UserControl, no puede ser estilizado por terceros.

Un ejemplo de un UserControl puede ser un visor de Imágenes, donde podemos hacerle Zoom, tener una presentación de varias imágenes, rotarlas, etc. Como ven este control seria un  grupo de otros controles (Image, TextBox, Button, Label, Border, etc)

CustomControl:

Con este control lo que podemos hacer es extender las capacidades de un control ya existente, consiste de un archivo de C# y una carpeta llamada Themes con un archivo Generics.xaml donde vamos a definir el estilo por defecto, además los CustomControl pueden ser estilizados, dependiendo de las propiedades del control que estemos “extendiendo”. Deriva de la clase Control, y de esta clase heredan casi todos los controles existentes (TexBox, Button, TextBlock, etc).

Un ejemplo de un CustomControl es un TextBox donde podemos adicionarle un Auto Completar o una marca de agua definida.

Ahora la pregunta es cuál de ellos se debe usar?, pues para mi es dependiendo del escenario o proyecto. Si pensamos que los controles que tenemos no nos son útiles para lo que queremos o necesitan de algo más, entonces creamos nuestro propio control con CustomControl, y si al contrario pensamos que cada control tiene algo de lo que queremos hacer, pues hacemos un UserControl

Deseas comentar o sugerir algo?

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s