Show / Hide Table of Contents

Практическое руководство. Определение режима FillBehavior для временной шкалы, достигшей конца периода активности

В этом примере показано, как указать FillBehavior для неактивного Timeline анимированного свойства.

Пример

FillBehavior Свойство Timeline определяет, что происходит с значение анимированного свойства, если оно не анимировано, то есть когда Timeline неактивна, но его родительский Timeline находится в своем активном периоде или периоде удержания. Например, она анимированного свойства по-прежнему со своей стороны значение после окончания анимации или делает это вернуться к значению, которое было до начала анимации?

В следующем примере используется DoubleAnimation для анимации Width двух прямоугольников. Каждый прямоугольник использует другое Timeline объекта.

Один Timeline имеет FillBehavior , имеет значение Stop, чего ширина прямоугольника, вернуться к его не анимированное значение, если Timeline заканчивается. Другой Timeline имеет FillBehavior из HoldEnd, чего ширина оставаться в конце значения при 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>

Полный пример см. в разделе Коллекция примеров анимации.

См. также

  • DoubleAnimation
  • Width
  • Timeline
  • FillBehavior
  • Stop
  • HoldEnd
  • Общие сведения об эффектах анимации
  • Разделы руководства по анимации и таймерам
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX