我正在尝试使用 VisualStateManager 来管理我的控制状态。以下工作正常,并在状态之间给了我一秒钟的动画。
<VisualStateManager.VisualStateGroups>
<VisualStateGroup Name="EditStates">
<!-- Default transition time commented out
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0:0:2"></VisualTransition>
</VisualStateGroup.Transitions>-->
<VisualState Name="Normal">
<Storyboard>
<ThicknessAnimation Storyboard.TargetName="ViewBorder"
Storyboard.TargetProperty="Margin" To="0"/>
<DoubleAnimation Storyboard.TargetName="HeaderTransform"
Storyboard.TargetProperty="ScaleY" To="0" />
</Storyboard>
</VisualState>
<VisualState Name="Editing">
<Storyboard>
<ThicknessAnimation Storyboard.TargetName="ViewBorder"
Storyboard.TargetProperty="Margin" To="100,0,100,100"/>
<DoubleAnimation Storyboard.TargetName="HeaderTransform"
Storyboard.TargetProperty="ScaleY" To="1" />
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
但是,如果我取消注释转换代码以尝试设置 2 秒的动画时间,它会非常混乱。
设置“编辑”时:
- 立即捕捉到 1 ,
DoubleAnimation
没有动画。 ThicknessAnimation
等待 2 秒,然后动画超过 1秒
当设置为“正常”时:
- 立即捕捉到 0 ,
ThicknessAnimation
没有动画。 DoubleAnimation
等待 2 秒,然后动画超过 1 秒。
谁能解释到底发生了什么?
我已经尝试过设置Duration="0"
所有动画,就像某些样本似乎做的那样,但这所做的只是删除了有效的动画。我仍然得到 2 秒的延迟,然后是捕捉而不是动画。