¿Dónde cargar los estilos de ContentControl en la biblioteca de clases de Avalonia?
Tengo un ContentControl/TemplatedControl escrito en Avalonia Class Library, y los estilos definidos en un archivo.
Para cargar los estilos, en WPF, tendrías que agregar AssemblyInfo.cs con este “hack”
using System.Windows;
[assembly: ThemeInfo(
ResourceDictionaryLocation.None, //dónde se encuentran los diccionarios de recursos específicos del tema
//(utilizado si un recurso no se encuentra en la página, el diccionario de recursos de la aplicación)
ResourceDictionaryLocation.SourceAssembly //dónde se encuentra el diccionario de recursos genérico
//(utilizado si un recurso no se encuentra en la página,
//app, o cualquier diccionario de recursos específico del tema)
)]
Ahora con Avalonia… ¿cuál es la manera de hacerlo?
EDITAR: ¿La respuesta es que el cliente debe registrar los archivos manualmente en App.xaml?
<application.styles>
<styleinclude source="avares://Avalonia.Themes.Default/DefaultTheme.xaml"></styleinclude>
<styleinclude source="avares://Avalonia.Themes.Default/Accents/BaseLight.xaml"></styleinclude>
<styleinclude source="avares://Avalonia.Controls.DataGrid/Themes/Default.xaml"></styleinclude>
</application.styles>
Pero entonces — ¿qué sucede si quiero mostrar múltiples controles de este tipo con diferentes estilos? Podría tener una propiedad en el control para elegir el tema o los colores.
davy.ai
En Avalonia, el cliente puede agregar manualmente los estilos que desea usar en el archivo App.xaml. El elemento
<application.styles>
se puede utilizar para incluir archivos de estilo mediante el protocoloavares
. Por ejemplo:Si desea mostrar múltiples controles con diferentes estilos, se podría agregar una propiedad al control que permita al cliente elegir el tema o los colores que desean usar. Esto se podría utilizar para actualizar dinámicamente los estilos del control.</application.styles>