C# ResourceDictionary源中的Uri语法(通用Windows平台)
我正在将我的C# ResourceDictionary源中的Uri语法(通用Windows平台),c#,xaml,windows-10,uwp,C#,Xaml,Windows 10,Uwp,我正在将我的windows8.1项目迁移到windows10(通用Windows平台)。 此时,我被ResourceDictionary中的UWP更改所阻止 为简单起见: 我有两个项目的Windows 8.1解决方案: App project (FooApp)+ Styles (FooStyles) project. FooApp引用了FooStyles,在App.xaml中,我有: <Application.Resources> <ResourceDictionary>
windows8.1
项目迁移到windows10
(通用Windows平台)。
此时,我被ResourceDictionary
中的UWP
更改所阻止
为简单起见:
我有两个项目的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>
这里有什么建议吗
另外,我不会将我的资源从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感到困惑,它指的是您的软件包,而不仅仅是包含应用程序的项目。这对于UWP解决方案和1个应用程序项目+1个样式项目非常有效。检查样式项目是否支持win 10。并尝试在应用程序项目中删除并重新添加对样式项目的引用。
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///Default.Namespace.External.Assembly/FolderPathOffRoot/Brushes.xaml"/>
</Application.Resources>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>