2010-02-24 15 views

Respuesta

6

Un estilo controla las propiedades individuales de un control. Por ejemplo, un estilo de botón puede decir: "Para cada botón, use este fondo". Un estilo está cambiando una sola propiedad en un control.

Una plantilla de control está realmente manejando cómo el control muestra sus datos encuadernados. En lugar de decir: "Quiero anular las propiedades de un control", está reuniendo otros controles más pequeños en un único control que puede presentar diferentes vistas de los datos encuadernados.

Anteriormente en WinForms, si quería escribir un cuadro de lista personalizado (supongamos que tenía un icono al lado de cada elemento), tenía que heredar del control ListView y anular los métodos de pintura. Esto implicó una tonelada de experimentación: un gran dolor. Con las plantillas WPF, puede usar XAML para construir controles más pequeños juntos y vincularlos a diferentes propiedades del control principal. En realidad está definiendo el árbol visual para el control.

Vea el artículo this para una explicación en profundidad de Charles Petzold.

+0

Hola, muchas gracias por la explicación detallada y el enlace al artículo. Lo echaré un vistazo tan pronto como pueda. –

3

Imagine que su control es una casa.

A Style es conceptualmente similar a poner una nueva alfombra y pintar las paredes. La casa en sí sigue siendo la misma, pero su aspecto exterior es diferente.

A ControlTemplate es el equivalente a derribar una pared o agregar un conservatorio. La estructura real de la casa ha cambiado.

Utilice un Style cuando desee cambiar el aspecto exterior del control E.G. es el color de fondo o el grosor de su borde.

Utilice ControlTemplate cuando necesite cambiar la estructura subyacente del control. Esto es útil cuando quiere cambiar el diseño de ciertos aspectos de un control. Un buen ejemplo es en el artículo this, que vuelve a crear una plantilla de TabControl para que parezca el navegador de Microsoft Outlook.

Cuestiones relacionadas