ResourceDictionary Source(通用Windows平台)中的Uri语法



我正在将我的Windows 8.1项目迁移到Windows 10(通用Windows平台)。此时,我被ResourceDictionaryUWP中的变化所阻挡。

简单的

:我有两个项目的Windows 8.1解决方案:

App project (FooApp)+ Styles (FooStyles) project.

FooApp有参考的FooStyles,并在App.xaml我有:

<Application.Resources>
<ResourceDictionary>
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="ms-appx:///FooStyles/Brushes.xaml"/>
    </ResourceDictionary.MergedDictionaries>

ms-appx语法允许我访问来自其他项目的资源文件。现在在Windows 10应用程序中,这不再工作了。编译以以下错误结束:

"An error occurred while finding the resource dictionary "ms-appx:///FooStyles/Brushes.xaml"."

有什么建议吗?

p。S我不会将我的资源从FooStyles移动到FooApp,因为在我的解决方案中,FooStyles在其他5个应用程序项目之间共享。

在UWP中,您必须指定名称空间来实现这一点。此外,我发现XAML资源字典只有在属性部分标记为"Page"时才会以这种方式引用。

然后在你的应用程序xaml:
<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="ms-appx:///Default.Namespace.External.Assembly/FolderPathOffRoot/Brushes.xaml"/>
        </Application.Resources>
    </ResourceDictionary>
</ResourceDictionary.MergedDictionaries>

不要对ms-appx感到困惑,它指的是你的包,而不仅仅是包含应用程序的项目。

最新更新