para los imagenes imagen descripcion como atributos atributo agregar c# wpf xaml themes assemblyinfo

c# - los - ¿Para qué sirve el atributo ThemeInfo?



meta title html (2)

El atributo ThemeInfo especifica dónde debe buscar el mecanismo de tema automático los diccionarios de tema y el diccionario genérico. Cada opción se puede establecer en uno de los siguientes valores:

  • Ninguno (predeterminado): no busque un diccionario de recursos.
  • SourceAssembly: el diccionario es el ensamblaje actual.
  • ExternalAssembly: el diccionario está en un ensamblaje diferente, que debe llamarse <AssemblyName>.<ThemeName>.dll , donde <AssemblyName> es el nombre del ensamblado actual.

Si los diccionarios de temas especifican estilos para los controles que están definidos en ensamblajes externos, por ejemplo, los controles de WPF como System.Windows.Controls.ProgressBar y System.Windows.Button , entonces debe usar ThemeDictionaryExtension para especificar la aplicación como fuente para los diccionarios temáticos.

Cada vez que creo una nueva aplicación WPF o una biblioteca de control de usuario de WPF, el archivo AssemblyInfo.cs incluye el siguiente atributo:

[assembly: ThemeInfo( ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located //(used if a resource is not found in the page, // or application resource dictionaries) ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located //(used if a resource is not found in the page, // app, or any theme specific resource dictionaries) )]

¿Para qué sirve este atributo ThemeInfo ? ¿Rompo algo si lo elimino?


El marco WPF utiliza este atributo en las bibliotecas de control como una forma conveniente de aplicar recursos a los controles.

Considere que Windows se puede ejecutar con diferentes temas de interfaz de usuario (Aero es uno de esos ejemplos). Los controles de WPF proporcionados por Microsoft alteran su apariencia para diferentes temas de entorno.

Si su aplicación requiere este comportamiento, puede crear diferentes diccionarios de themes en la carpeta de themes de su proyecto de biblioteca de control.

Incluso si no necesita soporte multitemática, es conveniente colocar recursos en el archivo generic.xaml para que estén accesibles a los controles en el ensamblado. Tal vez su elemento (control) se define en un archivo .cs sin una clase parcial .xaml , y necesita un lugar para almacenar los recursos que necesita, o (más probable) tiene recursos que se compartirán entre muchos elementos de WPF en el mismo proyecto / montaje.

El atributo al que se refiere aquí es metadatos para el mapeo de estos recursos.