Procedura: specificare la proprietà FillBehavior di un oggetto Timeline che ha raggiunto la fine del periodo di attività
Aggiornamento: novembre 2007
In questo esempio viene illustrato come specificare la proprietà FillBehavior per l'oggetto Timeline inattivo di una proprietà animata.
Esempio
La proprietà FillBehavior di un oggetto Timeline determina ciò che si verifica per il valore di una proprietà animata quando non viene animata, ossia quando l'oggetto Timeline è inattivo ma il relativo oggetto Timeline padre è nel periodo di attività o di attesa, ad esempio se al termine di un'animazione il valore di una proprietà animata rimane impostato sul valore finale o se viene ripristinato il valore esistente prima dell'inizio dell'animazione.
Nell'esempio seguente viene utilizzato un oggetto DoubleAnimation per animare la proprietà Width di due rettangoli. Ogni rettangolo utilizza un oggetto Timeline diverso.
Un oggetto Timeline include una proprietà FillBehavior impostata su Stop. In questo caso al termine dell'oggetto Timeline, viene ripristinato il valore della larghezza del rettangolo esistente prima dell'animazione. L'altro oggetto Timeline include una proprietà FillBehavior impostata su HoldEnd. In questo caso al termine dell'oggetto Timeline, la larghezza rimane impostata sul valore finale.
<Page
xmlns="https://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="https://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>
Per l'esempio completo, vedere Raccolta di esempi di animazioni.
Vedere anche
Concetti
Cenni preliminari sull'animazione
Riferimenti
Altre risorse
Animazione e sistema di temporizzazione
Procedure relative all'animazione e al sistema di temporizzazione