Show / Hide Table of Contents

Практическое руководство. Анимация изменений размера с использованием ключевых кадров

В этом примере показано, как можно анимировать изменения размера с использованием ключевых кадров.

Пример

В следующем примере используется SizeAnimationUsingKeyFrames класс для анимации Size свойство ArcSegment. Эта анимация использует три ключевых кадра следующим образом:

  1. В течение первой половины секунды анимации используется экземпляр LinearSizeKeyFrame класс для постепенного увеличения размера дуги. Линейные ключевые кадры, например LinearSizeKeyFrame создать плавный линейный переход между значениями.

  2. В конце следующей половины секунды используется экземпляр DiscreteSizeKeyFrame класс для резкого увеличения размера дуги. Дискретные ключевые кадры, например DiscreteSizeKeyFrame , создают скачкообразные переходы между значениями, то есть, изменения размера происходят внезапно и не плавно.

  3. За последних двух секунд используется экземпляр SplineSizeKeyFrame класс для увеличения размера дуги. Ключевые кадры сплайна, например SplineSizeKeyFrame , создают переменный переход между значениями в соответствии со значениями из KeySpline свойство. В этом примере размер дуги сначала увеличивается медленно, а ближе к концу временного сегмента — экспоненциально.

<!-- This example shows how to use the SizeAnimationUsingKeyFrames to animate the
size of an ArcSegment. -->
<Page xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" >

    <Canvas HorizontalAlignment="Left" Margin="0" >

      <!-- Create an arc on the screen that animates its size when it loads. -->
      <Path Stroke="Black" StrokeThickness="2" >
        <Path.Data>
          <PathGeometry>
            <PathGeometry.Figures>
              <PathFigureCollection>
                <PathFigure StartPoint="100,200">
                  <PathFigure.Segments>
                    <PathSegmentCollection>
                      <ArcSegment x:Name="myArcSegment" Size="90,80" 
                      SweepDirection="Clockwise"  Point="500,200" />
                    </PathSegmentCollection>
                  </PathFigure.Segments>
                </PathFigure>
              </PathFigureCollection>
            </PathGeometry.Figures>
          </PathGeometry>
        </Path.Data>
        <Path.Triggers>
          <EventTrigger RoutedEvent="Path.Loaded">
            <BeginStoryboard Name="myBeginStoryBoard">
              <Storyboard>
                
                <!-- Animating the Size property uses 3 KeyFrames. -->
                <SizeAnimationUsingKeyFrames
                Storyboard.TargetName="myArcSegment"
                Storyboard.TargetProperty="Size" >
                  <SizeAnimationUsingKeyFrames.KeyFrames>
                    <!-- Using a LinearSizeKeyFrame, the size of the arc increases
                         gradually over the first half second of the animation. -->
                    <LinearSizeKeyFrame KeyTime="0:0:0.5" Value="120,120" />

                    <!-- Using a DiscreteSizeKeyFrame, the size increases suddenly
                    after the first second of the animation. -->
                    <DiscreteSizeKeyFrame KeyTime="0:0:1" Value="150,150" />

                    <!-- Using a SplineSizeKeyFrame, the Size increases slowly at first 
                         and then speeds up exponentially. This KeyFrame takes 2 seconds. -->
                    <SplineSizeKeyFrame KeySpline="0.6,0.0 0.9,0.00" KeyTime="0:0:3" Value="300,300" />

                  </SizeAnimationUsingKeyFrames.KeyFrames>
                </SizeAnimationUsingKeyFrames>

              </Storyboard>
            </BeginStoryboard>
          </EventTrigger>
        </Path.Triggers>
      </Path>
    </Canvas>

</Page>

Описание полного примера см. в разделе Пример анимации по ключевым кадрам.

См. также

  • SizeAnimationUsingKeyFrames
  • Size
  • ArcSegment
  • LinearSizeKeyFrame
  • DiscreteSizeKeyFrame
  • SplineSizeKeyFrame
  • Общие сведения об анимации по ключевым кадрам
  • Практические руководства, посвященные анимации по ключевым кадрам
Back to top Неофициальная документация по .NET на русском языке. Лицензия: CC-BY 4.0. Основано на документации по .NET с Microsoft Docs
Generated by DocFX