我正在尝试使用CommonStates
来设置用户控件的动画。
我尝试了以下方法:
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal">
</VisualState>
<VisualState x:Name="PointerOver">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetName="circle"
Storyboard.TargetProperty="(Shape.Fill).(SolidColorBrush.Color)"
EnableDependentAnimation="True">
<LinearColorKeyFrame Value="Red"
KeyTime="0:0:0.02" />
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="Pressed">
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Ellipse x:Name="circle"
Height="280"
Width="280"
Fill="Green" />
</Grid>
我可以通过手动调用UpdateStates(true)
来进行更改,但是请参考文档,共同状态应自动触发。
知道我做错了什么吗?
答案 0 :(得分:2)
某些控件已定义视觉状态,并在其实现中进行切换,例如Button
或Checkbox
。在这种情况下,这些状态在文档like here中列出。不幸的是Grid
并不是其中之一,因此,如果您想要在此处进行类似的操作,则需要添加事件处理程序并手动使用GoToState
。您还可以从Grid
创建一个自定义的派生类,以使此行为可重复使用。