我試圖使用VisualStateManager來管理我的控件狀態。以下工作正常,並給我一個狀態之間的一秒鐘動畫。當我指定一個默認持續時間時,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秒的延遲,然後抓緊而不是動畫。