Estilos y plantillas insertados

Windows Presentation Foundation (WPF) proporciona objetos Style y objetos de plantilla (subclases de FrameworkTemplate) como una manera de definir el aspecto visual de un elemento en los recursos, para poder utilizarlos varias veces. Por esta razón, los atributos de XAML que aceptan los tipos Style y FrameworkTemplate casi siempre realizan referencias de recursos a estilos y plantillas existentes, en lugar de definir otros nuevos insertados.

Limitaciones de los estilos y las plantillas insertados

En Extensible Application Markup Language (XAML), las propiedades de estilos y plantillas se pueden establecer técnicamente de dos maneras. Puede utilizar la sintaxis de atributo para hacer referencia a un estilo definido dentro de un recurso, por ejemplo, <object Style="{StaticResource myResourceKey}" .../>. O bien, puede utilizar la sintaxis de elementos de propiedad para definir un estilo insertado, por ejemplo:

<objeto>

<objeto.Style>

<Style .../>

</objeto.Style>

</objeto>

El uso de atributos es mucho más común. Un estilo que se define insertado y no se define en los recursos necesariamente queda limitado al ámbito del elemento contenedor y no se puede reutilizar con facilidad porque carece de clave de recurso. En general, un estilo definido como recurso es más versátil y útil, y está más en línea con el principio general del modelo de programación de Windows Presentation Foundation (WPF), consistente en separar la lógica de programación, en el código, de la de diseño, en el marcado.

Normalmente, no hay ninguna razón para establecer un estilo o una plantilla insertados, aunque únicamente se pretendan utilizar en esa ubicación. La mayoría de los elementos que pueden tomar un estilo o una plantilla también admiten una propiedad de contenido y un modelo de contenido. Aunque vaya a usar el árbol lógico que cree mediante estilos o plantillas una sola vez, resultaría incluso más fácil rellenar esa propiedad de contenido con los elementos secundarios equivalentes en el marcado directo. De este modo se omitirían totalmente los mecanismos de plantillas y estilos.

También son posibles para los estilos y las plantillas otras sintaxis habilitadas por las extensiones de marcado que devuelven un objeto. Dos de estas extensiones con escenarios posibles son TemplateBinding y Binding.

Vea también

Conceptos

Aplicar estilos y plantillas