【发布时间】:2010-10-31 13:28:15
【问题描述】:
这是我的 TabItem 的 XAML。我希望能够在触发器中设置单个渐变停止的颜色。我知道我可以在触发器的设置器中完全重新定义渐变,但我想访问背景上的特定属性,以便将来为它设置动画。
我已经尝试了触发器设置器中所有内容的所有变体,并在谷歌上搜索了很长时间 - 但我仍然无法编译它。我也尝试过 class.property 语法,但仍然没有。此代码引发的当前错误是:
“找不到类型‘Background.GradientStops[0]’。”
我很确定我知道这里发生了什么——也许我想要的是不可能的。但是必须有一种方法可以在控件模板中为控件的渐变设置动画...
谁能帮帮我? 谢谢
<Style TargetType="{x:Type TabItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<TextBlock Padding="6 2 6 2" Name="TheHeader">
<TextBlock.Background>
<LinearGradientBrush StartPoint="0, 0" EndPoint="0, 1">
<GradientStop Offset="0" Color="#f4fafd" />
<GradientStop Offset="1" Color="#ceedfa" />
</LinearGradientBrush>
</TextBlock.Background>
<ContentPresenter ContentSource="Header" Margin="0" />
</TextBlock>
<ControlTemplate.Triggers >
<Trigger Property="IsSelected" Value="True">
<Setter TargetName="TheHeader" Property="Background.GradientStops[0].Color" Value="White" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
【问题讨论】: