Pon*_*iat 4 c# xaml windows-10 uwp
我正在将我的Windows 8.1项目迁移到Windows 10(通用 Windows 平台)。这一刻我被ResourceDictionary变化阻止了UWP停住了。
为简单起见:我有包含 2 个项目的 Windows 8.1 解决方案:
App project (FooApp)+ Styles (FooStyles) project.
Run Code Online (Sandbox Code Playgroud)
FooApp 引用了 FooStyles,并且App.xaml我有:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///FooStyles/Brushes.xaml"/>
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)
ms-appx语法允许我访问其他项目的资源文件。现在,在 Windows 10 应用程序中,此功能不再起作用。编译结束并出现以下错误:
"An error occurred while finding the resource dictionary "ms-appx:///FooStyles/Brushes.xaml"."
Run Code Online (Sandbox Code Playgroud)
这里有什么建议来修复它吗?
PS 我不会将我的资源从 FooStyles 移动到 FooApp,因为在我的解决方案中,FooStyles 在 5 个其他应用程序项目之间共享。
在 UWP 中,您必须指定命名空间才能实现此目的。另外,我发现 XAML 资源字典仅在“属性”部分中标记为“页面”时才以这种方式引用。
然后在您的应用程序 xaml 中:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///Default.Namespace.External.Assembly/FolderPathOffRoot/Brushes.xaml"/>
</Application.Resources>
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)
不要对 ms-appx 感到困惑,它指的是您的包,而不仅仅是包含应用程序的项目。
| 归档时间: |
|
| 查看次数: |
2421 次 |
| 最近记录: |