Reputation: 9565
I'm trying to get a ColorAnimation to occur depending on the control's state. I created a ControlTemplate for the ToggleButton that looks something like this:
<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>
Unfortunately, nothing is occuring. I'm not sure what I'm missing here.
Upvotes: 2
Views: 174
Reputation: 41203
Put the VisualStateManager.VisualStateGroups
attached property on the root element of your template, the Border
in your code. That's where the VisualStateManager
is getting its states from.
Upvotes: 1