2012-04-09 18 views
1

私は多くのテーマを持ち、各テーマはResourceDictionaryで表されます。問題は、辞書は、ほぼ同一であることであり、それらは例えば、私は色のブラシを宣言したbegginingのみが異なる:(スタイル用およびその他のXAMLオブジェクト)複数のテーマに単一のResourceDictionaryを使用するWPF

<SolidColorBrush x:Key="FirstRd1" Color="#3F555555" /> 
<SolidColorBrush x:Key="SecondRd1" Color="#00000000" /> 
<SolidColorBrush x:Key="ThirdRd1" Color="#FF333333" /> 
<SolidColorBrush x:Key="FourthRd1" Color="#FF000000" /> 

これらのブラシは、上のあちこちで使用されています同じように、次のように:

<!-- ResourceDictionary 1 --> 
<Border CornerRadius="4" 
     Margin="0, 0, 0, 0" 
     BorderThickness="1" 
     BorderBrush="{StaticResource FirstRd1}"> 
     <!-- Some content --> 
</Border> 

<!-- ResourceDictionary 2 --> 
<Border CornerRadius="4" 
     Margin="0, 0, 0, 0" 
     BorderThickness="1" 
     BorderBrush="{StaticResource FirstRd2}"> 
     <!-- Some content --> 
</Border> 

上記のような別のブラシで同じ要素を1つのファイルに移動するにはどうすればよいですか?ブラシに依存しない他の要素もありますが、ネストされているか、ネストされた依存コントロールを持っています。 1つのダミー変更に対して15以上のファイルを編集したくないので、この状況では最高の解決策は何ですか?

答えて

1

リソースディクショナリをマージすることができます。共通のものを1つのファイルに宣言してから、差別化された部分については、それぞれのファイルを独自のファイルにして共通ファイルとマージします。

私はマージオプションについて知っているが、コントロールがthightly結合されているとして、たとえばメインボーダーは事前に定義されたブラシに依存し、他のすべての制御は、この境界線内にネストされ、現在、私は、それを使用することはできませんhttp://msdn.microsoft.com/en-us/library/aa350178.aspx

+0

を参照してください。 。これらのコントロールの中には、ブラシに依存する他のコントロールがあるので、私は独立したパーツを移動するだけではありません。 – Unknown

+1

おそらく、StaticResourceをDynamicResourceに置き換えて結束を減らす必要があります – koshdim

関連する問題