所以我有一个Windows通用类库,其中包含一个资源字典,我想与App.xaml中的Windows 10 Universal Application主资源字典合并.
我的App.xaml只是从同一个程序集中合并到我的主资源字典中.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
然后从我的主资源字典(Styles/Styles.xaml)中我合并来自同一程序集的其他资源字典.这是我想在另一个程序集的资源字典中合并的地方:
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Fields.xaml"/>
<ResourceDictionary Source="DataTemplates.xaml"/>
<!--<ResourceDictionary Source="/{AssemblyName};component/Shared.xaml" />-->
<!--<ResourceDictionary Source="pack://application:,,,/{AssemblyName};component/Shared.xaml" />-->
<ResourceDictionary Source="ms-appx:///{AssemblyName}/Shared.xaml" />
</ResourceDictionary.MergedDictionaries>
Run Code Online (Sandbox Code Playgroud)
我已经尝试将其添加到我的主资源字典中:
<ResourceDictionary Source="/{AssemblyName};component/Shared.xaml" />
Run Code Online (Sandbox Code Playgroud)
还有这个...
<ResourceDictionary Source="ms-appx:///{AssemblyName}/Shared.xaml" />
Run Code Online (Sandbox Code Playgroud)
基于这篇关于Windows 8.x商店应用程序的文章,这似乎应该如何运作.但它仍然无效.
还有这个...
<ResourceDictionary Source="pack://application:,,,/{AssemblyName};component/Shared.xaml" />
Run Code Online (Sandbox Code Playgroud)
(这是WPF的方式,我知道,但我想我还是试一试!)
但似乎没有工作......
我在应用程序集中的资源字典的构建操作设置为"页面".这些资源字典在合并中正在使用它:
<ResourceDictionary Source="Styles/Styles.xaml"/>
Run Code Online (Sandbox Code Playgroud)
我得到以下神秘错误:
无法分配给属性"Windows.UI.Xaml.ResourceDictionary.Source",因为无法将类型"Windows.Foundation.String"分配给"Windows.Foundation.Uri"类型.[线路:12位置:37]
正如Romasz在评论中提到的那样,您需要参考包含样式的项目.然后使用以下代码进行参考.
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="ms-appx:///UserControlLibs/Styles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2474 次 |
| 最近记录: |