Windows应用商店应用无法创建样式BasedOn共享样式

时间:2015-03-02 13:34:36

标签: xaml windows-store-apps winrt-xaml resourcedictionary win-universal-app

我有一个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]

为什么会这样?

1 个答案:

答案 0 :(得分:0)

我有同样的问题。您需要将SharedResources.xaml直接合并到StyleResources.xaml中,并且只引用App.xaml中的StyleResources.xaml。

这是一个完整的例子: http://blog.craftingbytes.com/2015/05/resource-sharing-in-windows-universal.html