VisualStateManager를 사용하여 제어 상태를 관리하려고합니다. 다음은 잘 작동하고 상태 사이에 1 초의 애니메이션을 제공합니다.기본 기간을 지정하면 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 초 애니메이션 시간을 설정하려고 시도하는 전환 코드의 주석을 제거하면 눈부신 정도가 올라갑니다.
이 때 "편집"이 설정됩니다
DoubleAnimation
스냅을 1로 즉시, 아니 애니메이션.ThicknessAnimation
2 초 대기 후, "정상"이 설정되면
초 1 이상에 애니메이션 아니오 애니메이션,
ThicknessAnimation
스냅 즉시 0.DoubleAnimation
은 2 초 동안 대기 한 다음 1 초가 넘는 시간 동안 움직입니다.
도대체 무슨 일이 일어 났는지 설명 할 수 있습니까?
특정 샘플처럼 모든 애니메이션에 Duration="0"
설정을 시도했지만 작동하는 애니메이션이 제거됩니다. 나는 여전히 2 초의 지연을 얻었고, 그 다음에 애니 메이팅보다는 스냅을했다.