Estilos y plantillas insertados

Windows Presentation Foundation (WPF) proporciona objetos Style y objetos de plantilla (subclases FrameworkTemplate) 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 estilos y plantillas existentes en lugar de definir nuevos insertados.

Limitaciones de los estilos y plantillas insertados

En lenguaje de marcado de aplicaciones extensibles (XAML), las propiedades de estilo y plantilla se pueden establecer técnicamente de dos maneras. Puede usar la sintaxis de atributos para hacer referencia a un estilo definido dentro de un recurso, por ejemplo <objetoStyle="{StaticResourcemyResourceKey}" .../>. O bien, puede usar la sintaxis de elemento 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 definido insertado y no definido en los recursos se limita necesariamente al elemento contenedor solo 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 insertado, incluso si solo piensa usar ese estilo o plantilla 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. 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 de estas extensiones que tienen posibles escenarios son TemplateBinding y Binding.

Consulte también