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.

¿Cómo puedo cambiar la fuente predeterminada de mi aplicación WinUI?

No pude encontrar ninguna guía en los sitios web de Microsoft o en el repositorio de WinUI en GitHub. Estoy trabajando en una aplicación WinUI 3 y he trabajado previamente en WPF. Intenté establecer una FontFamily predeterminada para mi aplicación en el nivel más alto utilizando metodologías de WPF, pero parece que no funciona.

Por ejemplo, en WPF incluiría la FontFamily como un recurso en el archivo App.xaml.cs.

<resourcedictionary>
    <fontfamily x:key="MyCustomFont">pack://application:,,,/MyAssembly;component/Fonts/#CustomFontName</fontfamily>
    <resourcedictionary.mergeddictionaries>
        <!-- Eliminado por brevedad -->
    </resourcedictionary.mergeddictionaries>
</resourcedictionary>

Luego lo establecería en mi Window y todos los textblocks, etc. cambiarían a mi fuente personalizada:

<window fontfamily="{StaticResource MyCustomFont}">

Intenté hacer lo mismo en WinUI pero ya no hay una propiedad de dependencia FontFamily en Window, así que no estoy seguro de cómo hacerlo.

¡Cualquier ayuda será muy apreciada!

Tags:  ,

Answer

  1. Avatar for davy.ai

    Como experto en TI especializado en xaml y WinUI-3, entiendo tu preocupación sobre cómo establecer una FontFamily predeterminada para tu aplicación WinUI 3. Si bien la metodología de WPF para establecer la FontFamily como un recurso en el archivo App.xaml.cs funciona, no hay una propiedad de dependencia FontFamily en la ventana en WinUI 3.

    Sin embargo, aún puedes establecer la FontFamily predeterminada para tu aplicación creando un ResourceDictionary personalizado y usándolo en toda tu aplicación. Puedes agregar la FontFamily personalizada al ResourceDictionary y luego hacer referencia a ella en tus controles donde sea necesario.

    Aquí tienes un ejemplo de cómo crear un ResourceDictionary personalizado en WinUI 3 y establecer la FontFamily predeterminada:

    1. En el Explorador de soluciones, haz clic derecho en tu proyecto y selecciona Agregar > Nuevo elemento.
    2. Selecciona Diccionario de recursos en la lista de plantillas de elementos y asígnale un nombre, por ejemplo, CustomResources.xaml.
    3. Abre el archivo CustomResources.xaml y agrega el siguiente código:
      <resourcedictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
          <fontfamily x:key="MyCustomFont">pack://application:,,,/MyAssembly;component/Fonts/#CustomFontName</fontfamily>
      </resourcedictionary>
      

      Esto definirá una FontFamily personalizada con la clave “MyCustomFont”. Puedes reemplazar la URI de la fuente con la URI de tu propia fuente.

    4. En tu archivo App.xaml, agrega el siguiente código para incluir el archivo CustomResources.xaml como diccionario fusionado:

      <application.resources>
          <resourcedictionary>
              <resourcedictionary.mergeddictionaries>
                  <resourcedictionary source="CustomResources.xaml"></resourcedictionary>
              </resourcedictionary.mergeddictionaries>
          </resourcedictionary>
      </application.resources>
      

      Esto fusionará el archivo CustomResources.xaml con los recursos predeterminados de la aplicación.

    5. En tu control donde desees usar la FontFamily personalizada, haz referencia a ella usando la extensión de marcado StaticResource:

      <textblock fontfamily="{StaticResource MyCustomFont}" text="Texto de ejemplo"></textblock>
      

      Esto establecerá la FontFamily del control TextBlock en la FontFamily personalizada definida en el archivo CustomResources.xaml.

    Espero que esto te ayude a establecer una FontFamily predeterminada para tu aplicación WinUI 3. ¡Si tienes alguna otra pregunta, no dudes en preguntar!

Comments are closed.