Leer en inglés

Compartir a través de


Estilos en línea y plantillas

Windows Presentation Foundation (WPF) proporciona Style objetos y objetos de plantilla (FrameworkTemplate subclases) como una manera de definir la apariencia visual de un elemento en los recursos, de modo que se puedan usar varias veces. Por este motivo, los atributos de XAML que toman los tipos Style y FrameworkTemplate casi siempre hacen referencias de recursos a los estilos y plantillas existentes en lugar de definir nuevos en línea.

Limitaciones de estilos en línea y plantillas

En Lenguaje de marcado extensible de aplicaciones (XAML), las propiedades de estilo y plantilla se pueden establecer técnicamente de dos maneras. Puede usar la sintaxis de atributo para hacer referencia a un estilo definido en un recurso, por ejemplo, <objetoStyle="{StaticResourcemyResourceKey}" .../>. O bien, puede usar la sintaxis del elemento de propiedad para definir un estilo en línea, por ejemplo:

<objeto>

<objeto.Style>

<Style.../>

</objeto.Style>

</objeto>

El uso de atributos es mucho más común. Un estilo definido en línea y no definido en los recursos se limita necesariamente al elemento contenedor y no se puede volver a usar tan fácilmente porque no tiene ninguna clave de recurso. En general, un estilo definido por recursos es más versátil y útil, y se mantiene más en consonancia con el principio general del modelo de programación de Windows Presentation Foundation (WPF) de separar la lógica del programa en el código del diseño en el marcado.

Normalmente no hay ninguna razón para establecer un estilo o plantilla en línea, incluso si solo piensa usar ese estilo o plantilla en ese lugar. 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. Si solo usa cualquier árbol lógico que cree mediante estilos o plantillas una vez, sería incluso más fácil rellenar esa propiedad de contenido con los elementos secundarios equivalentes en el marcado directo. Esto omitiría por completo los mecanismos de estilo y plantilla.

Otras sintaxis habilitadas por extensiones de marcado que devuelven un objeto también son posibles para estilos y plantillas. Dos extensiones de este tipo que tienen posibles escenarios incluyen TemplateBinding y Binding.

Consulte también