次のようなスタイルがあるとします。
<Style TargetType="{x:Type ScrollBar}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid x:Name="Bg" Background="Grey">
<!-- Non-Relevant Stuff Here -->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
スクロールバーが無効になっているときは、グリッドの背景を赤くしたいです。私はこれを行うことができます:
<Style TargetType="{x:Type ScrollBar}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid x:Name="Bg" Background="Grey">
<!-- Non-Relevant Stuff Here -->
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ScrollBar}">
<Grid x:Name="Bg" Background="Red">
<!-- Non-Relevant Stuff Here -->
</Grid>
</ControlTemplate>
</Setter.Value>
</Trigger>
</Style.Triggers>
</Style>
しかし、それは私のテンプレートをすべて複製します。そのため、変更は 2 か所で行う必要があります。
このトリガーを取得して、テンプレートのグリッドの背景だけを変更できるようにするにはどうすればよいですか?
(注: 実際の ScrollBar の Background プロパティに Setter を追加しても効果はありません。)