我试图让 ColorAnimation 根据控件的状态发生。我为 ToggleButton 创建了一个 ControlTemplate,它看起来像这样:
<ControlTemplate TargetType="ToggleButton">
<Border>
<Grid>
<VisualStateManager.VisualStateGroup>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="MouseOver">
<Storyboard>
<ColorAnimation Storyboard.TargetName="ColorChangeRect"
Storyboard.TargetProperty="(Rectangle.Fill).(SolidColorBrush.Color)"
To="Blue" Duration="0:0:3" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroup>
<Rectangle x:Name=ColorChangeRect" Fill="Red" />
<ContentPresenter Content="{TemplateBinding Content}" />
</Grid>
</Border>
</ControlTemplate>
不幸的是,什么都没有发生。我不确定我在这里缺少什么。