假设我有一个看起来像这样的风格:
<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>
但这重复了我的所有模板。因此,现在必须在两个地方进行任何更改。
如何获得此触发器以允许我仅更改模板中网格的背景?
(注意:为实际 ScrollBar 的 Background 属性添加 Setter 没有任何效果。)