Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Proporciona una manera para que los autores de controles personalizados o las aplicaciones que integren controles de terceros carguen diccionarios de recursos específicos para el tema que se utilizarán para estilizar el control.
Uso de atributos XAML
<object property="{ThemeDictionary assemblyUri}" ... />
Uso de elementos de objeto XAML
<object>
<object.property>
<ThemeDictionary AssemblyName="assemblyUri"/>
<object.property>
<object>
Valores XAML
Importancia | Descripción |
---|---|
assemblyUri |
Identificador uniforme de recursos (URI) del ensamblaje que contiene información sobre el tema. Normalmente, se trata de un URI de paquete que hace referencia a un ensamblado del paquete mayor. Los recursos de ensamblado y los URI del paquete simplifican los problemas de implementación. Para obtener más información, vea Pack URI en WPF. |
Observaciones
Esta extensión está pensada para rellenar solo un valor de propiedad específico: un valor para ResourceDictionary.Source.
Al usar esta extensión, puedes especificar un único ensamblado solo de recursos que contenga algunos estilos para usar únicamente cuando el tema de Windows Aero se aplique al sistema del usuario, otros estilos solo cuando el tema Luna esté activo, y así sucesivamente. Con esta extensión, el contenido de un diccionario de recursos específico del control se puede invalidar y volver a cargar automáticamente para que sea específico para otro tema cuando sea necesario.
La assemblyUri
cadena (AssemblyName valor de propiedad) forma la base de una convención de nomenclatura que identifica qué diccionario se aplica a un tema determinado. La ProvideValue lógica para ThemeDictionary
completa la convención mediante la generación de un identificador uniforme de recursos (URI) que apunta a una variante concreta del diccionario de temas, tal como se encuentra dentro de un ensamblado de recursos precompilado. La descripción de esta convención, o las interacciones de temas con el estilo de control general y el estilo de nivel de página o aplicación como concepto, no se tratan completamente aquí. El escenario básico para usar ThemeDictionary
es especificar la Source propiedad de un ResourceDictionary
declarado en el nivel de aplicación. Cuando se proporciona un URI para el ensamblado a través de una ThemeDictionary
extensión en lugar de como un URI directo, la lógica de extensión proporcionará una lógica de invalidación que se aplica siempre que cambie el tema del sistema.
La sintaxis de atributo es la sintaxis más común que se usa con esta extensión de marcado. El token de cadena proporcionado después de asignar la cadena de identificador de ThemeDictionary
como valor AssemblyName de la clase de extensión ThemeDictionaryExtension subyacente.
ThemeDictionary
también se puede usar en la sintaxis del elemento object. En este caso, se requiere especificar el valor de la AssemblyName propiedad .
ThemeDictionary
también se puede usar en un uso detallado de atributos que especifica la Member propiedad como un par property=value:
<object property="{ThemeDictionary AssemblyName=assemblyUri}" ... />
El uso detallado suele ser útil para las extensiones que tienen más de una propiedad configurable, o algunas propiedades opcionales. Dado que ThemeDictionary
solo tiene una propiedad configurable, que es necesaria, no suele ser común un uso tan detallado.
En la implementación del procesador XAML de WPF, el manejo de esta extensión de marcado está definido por la clase ThemeDictionaryExtension.
ThemeDictionary
es una extensión de marcado. Las extensiones de marcado normalmente se implementan cuando hay un requisito de escape de valores de atributo que no sean valores literales o nombres de controlador, y el requisito es más global que simplemente colocar convertidores de tipos en determinados tipos o propiedades. Todas las extensiones de marcado en XAML usan los caracteres { y } en su sintaxis de atributo, que es la convención por la que un procesador XAML reconoce que una extensión de marcado debe procesar el atributo. Para obtener más información, consulta Extensiones de marcado y XAML de WPF.
Consulte también
.NET Desktop feedback