WinUI XAML:使用来自其他项目的ResourceDictionary

xj3cbfub  于 11个月前  发布在  其他
关注(0)|答案(1)|浏览(83)

在我的WinUI 3应用程序中,我试图使用位于另一个项目中的ResourceDictionary。
假设引用的项目是ResourceTestLib,这个库项目有一个文件夹“Styles”,其中有一个文件“_Thickness.xaml”。
在主应用程序的app.xaml文件中,我在“Other merged dictionaries here”注解下面尝试了这两种方法,但似乎都不起作用,即应用程序在启动时崩溃,并显示“Cannot locate resource..”消息。
这是我的app.xaml:

<Application.Resources>
    <ResourceDictionary>

        <ResourceDictionary.MergedDictionaries>
            <XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />

            <!-- Other merged dictionaries here -->
            <ResourceDictionary Source="/ResourceTestLib;component/Styles/_Thickness.xaml"/>
            <ResourceDictionary Source="pack://application:,,,/ResourceTestLib;component/Styles/_Thickness.xaml"></ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>

    </ResourceDictionary>
</Application.Resources>

字符串
当我将鼠标悬停在相应的行上时,Visual Studio显示一个工具提示,其中第一个引用的ResourceDictionary显示“Path X not found”,第二个显示“Invalid characters in path”(可能是因为“application:,”)消息。
我假设WinUI XAML在这方面可能与WPF XAML不同?或者甚至还不支持?

biswetbf

biswetbf1#

包URI仅在WPF中使用。
UWP和Win UI使用ms-appx URI方案来引用驻留在另一个程序集中的文件,因此请尝试以下操作:

<ResourceDictionary Source="ms-appx:///ResourceTestLib/Styles/_Thickness.xaml" />

字符串
更多关于UWP风格的URI方案:
https://learn.microsoft.com/en-us/windows/uwp/app-resources/uri-schemes

相关问题