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.

WinUI XAML: Usar un ResourceDictionary de otro proyecto

En mi aplicación WinUI 3, estoy tratando de usar un ResourceDictionary que se encuentra en otro proyecto.

Digamos que el proyecto de referencia es “ResourceTestLib” y este proyecto de biblioteca tiene una carpeta “Styles” que contiene un archivo “_Thickness.xaml”.

En el archivo app.xaml de la aplicación principal, probé estos dos enfoques debajo del comentario “Other merged dictionaries here”, pero ninguno de ellos parece funcionar, es decir, la aplicación se bloquea al iniciar con el mensaje “No se puede encontrar el recurso….”.

Este es mi app.xaml:

<application.resources>
    <resourcedictionary>

        <resourcedictionary.mergeddictionaries>
            <xamlcontrolsresources xmlns="using:Microsoft.UI.Xaml.Controls"></xamlcontrolsresources>

            <!-- Other merged dictionaries here -->
            <resourcedictionary source="/ResourceTestLib;component/Styles/_Thickness.xaml"></resourcedictionary>
            <resourcedictionary source="pack://application:,,,/ResourceTestLib;component/Styles/_Thickness.xaml"></resourcedictionary>
        </resourcedictionary.mergeddictionaries>

    </resourcedictionary>
</application.resources>

Cuando paso el cursor sobre la línea correspondiente, Visual Studio muestra un mensaje emergente con “Path X not found” para el primer ResourceDictionary de referencia y un mensaje “Invalid characters in path” (probablemente debido a “application:,,,”) para el segundo.

Supongo que el XAML de WinUI podría ser diferente al XAML de WPF en ese sentido. ¿O incluso que esto aún no esté soportado?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en c#, xaml, uwp-xaml, winui-3 y windows-app-sdk, parece que estás intentando utilizar un ResourceDictionary ubicado en otro proyecto, y tus intentos actuales no han sido exitosos. Has agregado las referencias de ResourceDictionary a tu archivo app.xaml, pero la aplicación se bloquea al iniciar con el mensaje de error “No se puede ubicar el recurso …”.

    Es posible que el WinUI XAML sea diferente al WPF XAML en este aspecto, o que esta característica aún no sea compatible. Sin embargo, hay algunas sugerencias que pueden ayudar a resolver este problema:

    • Asegúrate de que el proyecto ResourceTestLib esté correctamente referenciado en tu proyecto principal de la aplicación.
    • Verifica que la ruta al archivo _Thickness.xaml sea correcta y que la acción de compilación esté configurada como “Page” o “Resource”.
    • Intenta utilizar una sintaxis diferente para la fuente de ResourceDictionary, como omitir la palabra clave “component” o utilizar una ruta relativa.
    • En lugar de hacer referencia al ResourceDictionary en app.xaml, intenta hacer referencia directamente en el archivo XAML donde se necesita utilizando la extensión de marcado StaticResource.

    Esperemos que una de estas sugerencias resuelva el problema y te permita utilizar correctamente el ResourceDictionary del proyecto ResourceTestLib en tu aplicación WinUI 3.

Comments are closed.