【发布时间】:2018-09-04 09:01:02
【问题描述】:
我正在尝试使用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) 来产生更改,但是参考文档应该会自动触发 commonstates。
知道我做错了什么吗?
【问题讨论】:
-
没有
UpdateStates(Boolean)方法,你的意思是VisualStateManager.GoToState方法吗? -
是的,我的意思是 VisualStateManager.GoToState,抱歉。我想知道为什么默认情况下不会触发它。我读了这篇文章:stackoverflow.com/questions/32912308/…,它说应该在没有明确调用 VisualStateManager.GoToState 的情况下触发它。
标签: uwp storyboard uwp-xaml visualstatemanager visualstategroup