也许有人会帮助我。我整天都在努力寻找在我的 WindowsPhone 项目上共享样式和资源的解决方案。
问题如下:
我有一个由两个 WP 项目使用的通用程序集。在这个程序集中,我定义了一些样式和数据模板。我希望在通用程序集中定义其中一个数据模板并成为项目的默认数据模板。
汇编资源字典示例代码:
<Style TargetType="TextBlock" x:Key="TopItemsTitle">
<Setter Property="FontSize" Value="18"></Setter>
<Setter Property="FontFamily" Value="Segoe WP Black"></Setter>
<Setter Property="Foreground" Value="Red"></Setter>
</Style>
<DataTemplate x:Key="TopItemsTemplate">
<Button>
<TextBlock x:Name="Name"
Grid.Row="1"
Width="172"
Height="25"
Margin="0,6,0,50"
VerticalAlignment="Bottom"
Text="{Binding Name}"
TextWrapping="Wrap"
Style="{StaticResource TopItemsTitle}" />
</Button>
</DataTemplate>
在不同的项目中,我想重新定义 TopItemsTitle 样式,例如:
<Style TargetType="TextBlock" x:Key="TopItemsTitle">
<Setter Property="FontSize" Value="20"></Setter>
<Setter Property="FontFamily" Value="Segoe WP"></Setter>
<Setter Property="Foreground" Value="Blue"></Setter>
</Style>
然后将两个资源字典合并到一个 WP 项目的 app.xaml 中:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Assembly;component/Resources/Style.xaml" />
<ResourceDictionary Source="Resources/LocalStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
根据MSDN ,这应该是可能的。然而实际上这不起作用。数据模板不反映重新定义的样式并使用默认样式。
这是一个错误还是我做错了?
任何形式的帮助将不胜感激。