我正在尝试根据控件的状态进行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>
不幸的是,什么也没发生。我不确定我在这里缺少什么。
答案 0 :(得分:1)
将VisualStateManager.VisualStateGroups
附加属性放在模板的根元素上,Border
放在代码中。这就是VisualStateManager
从其中获取状态的地方。