2016-07-13 9 views
0

XAMLスタイルは、setter "template"を持つスタイルから継承し、既存のすべてのトリガを継承し、別のトリガで展開することはできますか?xamlセッターを拡張することはできますか?

例スタイル:

<Style x:Key="BigButton" TargetType="{x:Type RadioButton}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type RadioButton}"> 
       <ControLTemplate.Triggers> 
        <Trigger Property="IsMouseOver" Value="true"> 
         <Setter Property="Opacity" Value="1"/> 
        </Trigger> 
        <Trigger Property="IsPressed" Value="true"> 
         <Setter Property="Background" Value="Red"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

私のボタンのほとんどは、これら2つのトリガとスタイルを持っています。 これで私の質問になりました。私は新しいスタイル次している場合 :このスタイルで

<Style x:Key="BigButton" TargetType="{x:Type RadioButton}" 
    based on="{StaticResource BigButton}"> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType={x:Type RadioButton}"> 
       <ControlTemplate.Triggers> 
        <Trigger Property="IsEnabled" Value="true"> 
         <Setter Property="Background" Value="White"/> 
        </Trigger> 
       </ControlTemplate.Triggers> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

それは、以前のテンプレートセッターを上書きします。 だから私の質問は次のとおりです。 は、以前のテンプレートセッターを上書きし、唯一の新しいスタイルにトリガーを追加しない方法はありますか?

私があなたを助けてくれることを願っています。

に基づいて

+0

あなたの例には、両方とも「」 –

+0

がありません。ありがとう、私は例で追加しました – Evosoul

+0

トリガーはControlTemplateの一部ですので、テンプレートを上書きしないで追加することはできません。それはXAMLに関する私の最大の不平の一つです。 –

答えて

1

トリガたControlTemplateのうち、トリガを取得しようとしました:不足している情報がある場合は はそれを

ご挨拶、私が試してみました何 リチャード

を書いてくださいControlTemplateの一部ですので、テンプレートを上書きしなくても追加することはできません(これは面白いIMOですが、それはそのままです)。

関連する問題