私はデータバインディングプロパティ以外は同じです、私のWPFのXAMLの様々なスタイルの要素、例えばを持っている:統合共通WPFのスタイル
<TextBlock Style="{StaticResource HasAlphaStyle}" .../>
:スタイルは次のように制御に適用される
<Style x:Key="HasAlphaStyle" TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=HasAlpha, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=HasAlpha, UpdateSourceTrigger=PropertyChanged}" Value="False">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontWeight" Value="Normal"/>
</DataTrigger>
</Style.Triggers>
</Style>
<Style x:Key="HasBetaStyle" TargetType="TextBlock">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=HasBeta, UpdateSourceTrigger=PropertyChanged}" Value="True">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
<DataTrigger Binding="{Binding Path=HasBeta, UpdateSourceTrigger=PropertyChanged}" Value="False">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontWeight" Value="Normal"/>
</DataTrigger>
</Style.Triggers>
</Style>
プロパティ設定ツールを複製する必要がないように、HasAlphaStyleとHasBetaStyleを統合する方法はありますか? 2つの唯一の違いは、プロパティへのバインディングパスです。
興味深い質問として、あなたのテキストブロックを書くことができ、ありますセッターの値を1つだけ維持できるように、統合の目的?これをTextBlocksまたはFrameworkElementだけに適用できるようにしたいですか? – Dutts
1.はい。 2.任意のFrameworkElementに対して繰り返し使用できるセッターのセット –