Silverlightで動的なResourceDictionaryソースを使用するにはどうすればよいですか?私のアプリには、多くのスタイル定義を持つ1つの「Styles.xaml」があり、いくつかのブラシが定義されている「Colors.xaml」を参照しています。
Styles.xaml:
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Project;component/Colors.xaml" />
</ResourceDictionary.MergedDictionaries>
<DataTemplate x:Key="MyLayoutTemplate">
<Button Background="ButtonBackgroundBrush">Button Title</Button>
</DataTemplate>
<!-- A lot of other definitions -->
</ResourceDictionary>
Colors.xaml:
<ResourceDictionary>
<SolidColorBrush x:Key="ButtonBackgroundBrush" Color="#FFFFFFFF"/>
<!-- ... -->
</ResourceDictionary>
つまり、基本的にStyles.xamlはレイアウトを定義し、Colors.xamlは色を定義します(duh)。私のApp.xamlは、このStyles.xamlのみを参照しています。
私が必要としているのは、これを使用しない方法です。
<ResourceDictionary Source="/Project;component/Colors.xaml" />
そして、これが動的に定義される静的クラスにこのSourceプロパティを「ポイント」(またはバインド)します。このようなもの:
<ResourceDictionary Source="{Binding Settings.ThemeUri}" />
これを達成する方法はありますか?