2012-02-04 7 views
0

私は特定の要素のスタイルをこのように宣言したテーマに関連したデータを、といくつかのリソースディクショナリを持っている:リソース辞書を介して制御テンプレートやテーマに関連するデータ分離

<Style TargetType="sdk:DataForm"> 
    <Setter Property="Background" Value="{StaticResource Bckgrnd}"/> 
</Style> 

そしてまた、私はGeneric.xamlを持っています私はこのターゲットタイプのテンプレートを設定したいが、あるテンプレートではいくつかの色を使用する必要があるが、ターゲットタイプは色のプロパティを1つしか持たないという状況に直面していた。

<Style TargetType="sdk:DataForm"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="sdk:DataForm"> 
       <Grid ctl:DataField.IsFieldGroup="True"> 
        .... 
       <StackPanel Background="{TemplateBinding Background}" ...> 
        ... 
        ... 
       <!-- and I need another background from themes here --> 
       <StackPanel Background="{???}" ...> 
        ... 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

質問:この場合、ターゲットの種類の拡張子のようなものがなくても、どうやって色を変えることができますか?あなたが純粋なxamlソリューションを見つけるなら、それは素晴らしいことでしょう。

ありがとうございました

答えて

0

純粋なXAMLソリューションについてはわかりません。私はDataFormのサブクラスを作成し、それにBrush型の依存関係プロパティを追加すると思います。次に、DataFormではなくXAMLでそのクラスを使用し、新しいプロパティを参照するTemplateBindingsを使用します。

また、DataFormのサブクラス化をしたくない場合は、Brush型の添付プロパティを作成することもできます。

関連する問題