おそらく誰かが私を助けてくれるでしょう。私は一日中、WindowsPhoneプロジェクトでスタイルとリソースを共有するための解決策を見つけようとしています。
問題は次のとおりです。
2つのWPプロジェクトで使用される共通のアセンブリがあります。このアセンブリ内には、いくつかのスタイルとデータテンプレートが定義されています。データテンプレートの1つを共通アセンブリで定義し、プロジェクトのデフォルトのデータテンプレートにします。
アセンブリリソースディクショナリのサンプルコード:
<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>
次に、1つのWPプロジェクトのapp.xamlで両方のリソースディクショナリをマージします。
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Assembly;component/Resources/Style.xaml" />
<ResourceDictionary Source="Resources/LocalStyle.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
MSDNによると、これは可能であるはずです。ただし、実際にはこれは機能しません。データテンプレートは再定義されたスタイルを反映せず、デフォルトのスタイルを使用します。
これはバグですか、それとも単純に間違っていますか?
どんな種類の助けも大歓迎です。