es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿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.

Tags:  , , , ,

Answer

  1. Avatar for 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 protocolo avares. Por ejemplo:

    <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>
    

    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>

Comments are closed.