我有一个Windows 8.1应用程序。
在Project.Shared中,存在具有基本样式的ResourceDictionary SharedResources.xaml
,
<Style x:Key="CommonLayerListItemStyle" TargetType="TextBlock">
<Setter Property="FontFamily" Value="Segoe WP" />
<Setter Property="Foreground" Value="{StaticResource UnselectBrush}" />
<Setter Property="VerticalAlignment" Value="Stretch" />
</Style>
Windows Phone应用程序中的是StyleResources.xaml
基于此
<Style x:Key="LayerListItemStyle"
BasedOn="{StaticResource CommonLayerListItemStyle}"
TargetType="TextBlock">
<Setter Property="FontSize" Value="20" />
</Style>
在Windows应用StyleResources.xaml
中也是如此:
<Style x:Key="LayerListItemStyle"
BasedOn="{StaticResource CommonLayerListItemStyle}"
TargetType="TextBlock">
<Setter Property="FontSize" Value="28" />
<Setter Property="Margin" Value="42,0,0,0" />
</Style>
所有样式都在共享项目中创建的UserControl中使用。 我这样做是为了在不同的平台上覆盖FontSize。
我合并了App.xaml中的所有词典
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Styles/SharedResources.xaml" />
<ResourceDictionary Source="Styles/StyleResources.xaml" />
</ResourceDictionary.MergedDictionaries>
但我的应用程序并非以未处理的异常开头
Cannot find a Resource with the Name/Key CommonLayerListItemStyle [Line: 10 Position: 37]
为什么会这样?
答案 0 :(得分:0)
我有同样的问题。您需要将SharedResources.xaml直接合并到StyleResources.xaml中,并且只引用App.xaml中的StyleResources.xaml。
这是一个完整的例子: http://blog.craftingbytes.com/2015/05/resource-sharing-in-windows-universal.html