2010-12-17 24 views
0

詳細なユーザーコントロールがいくつかのセクションで構成されていますが、これらのセクションには特定の青色テーマが適用されていますが、すべてのグリッド//Rectangle/etc ...色は、DataContextのバインディングに基づいて同じテーマの緑色バージョンになります。WPFバインディング値に基づいてカラーテーマを適用する

明らかに、要素のFill/Backgroundプロパティごとにコンバーターを使用できますが、それは非常に面倒です。

私のコンバータ(またはXAML)では、何らかの方法で私の要素の塗りつぶし/背景/ etc ...プロパティを設定するユーザーコントロールに何かを適用できますか?

答えて

1

これをスタイルで設定すると、すべての四角形が特定の色になります。

<LinearGradientBrush x:Key="Windowsbackground" EndPoint="0.5,1" StartPoint="0.5,0"> 
    <GradientStop Color="Black" Offset="0.259"/> 
    <GradientStop Color="#FF7691CD" Offset="1"/> 
</LinearGradientBrush> 

そして、私のユーザーコントロールに:

<UserControl x:Class="Test.Views.TestView" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    MinHeight="300" MinWidth="300" Background="{DynamicResource Windowsbackground}"> 
+0

ので、私はこれらの色やグラデーションを必要とするすべての異なる要素に別のスタイルを適用しなければならない私が持っているリソースディクショナリで

?私はそう思っていて、ちょうどチェックしたいと思っていました。 – Mark

+0

あなたのコントロールのそれぞれが再び使用する色やグラデーションの独自のスタイルを追加して、将来的に色やグラデーションを変更しやすくします。 –

+0

しかし、あなたは明示的にそれぞれの "普通の"コントロールのデフォルトを上書きするか、上記のような独自のスタイルを作る必要があります。私は上記のアプローチをお勧めします! –

関連する問題