如何:針對已達到使用中週期結尾的時刻表指定 FillBehavior
此範例示範如何為動畫屬性的非作用中 Timeline 指定 FillBehavior。
範例
Timeline 的 FillBehavior 屬性可決定當動畫屬性的值未產生動畫效果時,也就是當 Timeline 處於非作用中狀態,但其父系 Timeline 在其作用中或保留期間內時,會發生什麼情況。 例如,動畫屬性是否會在動畫結束之後維持在其結束值,還是會還原回動畫開始前的值?
下列範例使用 DoubleAnimation ,以動畫呈現兩個矩形的 Width。 每個矩形都會使用不同的 Timeline 物件。
一個 Timeline 具有設定為 Stop 的 FillBehavior,這會導致矩形的寬度在 Timeline 結束時還原回其非動畫值。 另一個 Timeline 具有 HoldEnd 的 FillBehavior,這會在 Timeline 結束時導致寬度維持在其結束值。
<Page
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >
<StackPanel Margin="20">
<Border Background="#99FFFFFF">
<TextBlock Margin="20">
This example shows how the FillBehavior property determines how an animation behaves
after it reaches the end of its duration.
</TextBlock>
</Border>
<TextBlock>FillBehavior="Deactivate"</TextBlock>
<Rectangle Name="deactiveAnimationRectangle" Width="20" Height="20" Fill="#AA3333FF" HorizontalAlignment="Left" >
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<!-- The animated rectangle's width reverts back to its non-animated value
after the animation ends. -->
<DoubleAnimation
Storyboard.TargetName="deactiveAnimationRectangle"
Storyboard.TargetProperty="Width"
From="100" To="400" Duration="0:0:2" FillBehavior="Stop" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
<TextBlock Margin="0,20,0,0">FillBehavior="HoldEnd" </TextBlock>
<Rectangle Name="holdEndAnimationRectangle" Width="20" Height="20" Fill="#AA3333FF" HorizontalAlignment="Left" >
<Rectangle.Triggers>
<EventTrigger RoutedEvent="Rectangle.Loaded">
<BeginStoryboard>
<Storyboard>
<!-- The animated rectangle's width remains at its end value after the
animation ends. -->
<DoubleAnimation Storyboard.TargetName="holdEndAnimationRectangle"
Storyboard.TargetProperty="Width"
From="100" To="400" Duration="0:0:2" FillBehavior="HoldEnd" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Rectangle.Triggers>
</Rectangle>
</StackPanel>
</Page>
如需完整的範例,請參閱動畫範例資源庫。