Condividi tramite


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

DoubleAnimation

Width

Timeline

FillBehavior

Stop

HoldEnd

Altre risorse

Animazione e sistema di temporizzazione

Procedure relative all'animazione e al sistema di temporizzazione

Esempi di animazione e sistema di temporizzazione