Поделиться через


KeyFrameAnimation.Direction Свойство

Определение

Направление воспроизведения анимации.

Свойство Direction позволяет управлять анимацией от начала к концу или к началу или чередоваться между началом и окончанием или с конца на начало, если анимация имеет значение IterationCount больше единицы. Это позволяет легко настраивать определения анимации.

public:
 property AnimationDirection Direction { AnimationDirection get(); void set(AnimationDirection value); };
AnimationDirection Direction();

void Direction(AnimationDirection value);
public AnimationDirection Direction { get; set; }
var animationDirection = keyFrameAnimation.direction;
keyFrameAnimation.direction = animationDirection;
Public Property Direction As AnimationDirection

Значение свойства

Направление воспроизведения анимации.

Требования к Windows

Семейство устройств
Windows 10 Anniversary Edition (появилось в 10.0.14393.0)
API contract
Windows.Foundation.UniversalApiContract (появилось в v3.0)

Примеры

AnimationDirection — обычный

class Direction 
{ 
  Direction(Compositor compositor, SpriteVisual heroVisual) 
  { 
    Vector3KeyFrameAnimation animation = compositor.CreateVector3KeyFrameAnimation(); 
    animation.InsertKeyFrame(0f, new Vector3(0f,0f,0f)); 
    animation.InsertKeyFrame(1f, new Vector3(20f,20f,0f)); 
    animation.Duration = TimeSpan.FromSeconds(0.25); 

    // Run animation for 4 times 
    animation.IterationCount = 4; 

    // Direction of animation is normal i.e. forward. 
    animation.Direction = AnimationDirection.Normal; 

    heroVisual.StartAnimation("Offset", animation); 
  } 
} 

AnimationDirection имеет обратный

class Direction 
{ 
  Direction(Compositor compositor, SpriteVisual heroVisual) 
  { 
    Vector3KeyFrameAnimation animation = compositor.CreateVector3KeyFrameAnimation(); 
    animation.InsertKeyFrame(0f, new Vector3(0f,0f,0f)); 
    animation.InsertKeyFrame(1f, new Vector3(20f,20f,0f)); 
    animation.Duration = TimeSpan.FromSeconds(0.25); 

    // Run animation for 4 times 
    animation.IterationCount = 4; 

    // Direction of animation is Reverse i.e. end to start. 
    animation.Direction = AnimationDirection.Reverse; 

    heroVisual.StartAnimation("Offset", animation); 
  } 
} 

AnimationDirection является альтернативным

class Direction 
{ 
  Direction(Compositor compositor, SpriteVisual heroVisual) 
  { 
    Vector3KeyFrameAnimation animation = compositor.CreateVector3KeyFrameAnimation(); 
    animation.InsertKeyFrame(0f, new Vector3(0f,0f,0f)); 
    animation.InsertKeyFrame(1f, new Vector3(20f,20f,0f)); 
    animation.Duration = TimeSpan.FromSeconds(0.25); 

    // Run animation for 4 times 
    animation.IterationCount = 4; 

    // Direction of animation is alternate i.e. start to end and then end to start and so on. 
    animation.Direction = AnimationDirection.Alternate; 

    heroVisual.StartAnimation("Offset", animation); 
  } 
} 

AnimationDirection — AlternateReverse

class Direction 
{ 
  Direction(Compositor compositor, SpriteVisual heroVisual) 
  { 
    Vector3KeyFrameAnimation animation = compositor.CreateVector3KeyFrameAnimation(); 
    animation.InsertKeyFrame(0f, new Vector3(0f,0f,0f)); 
    animation.InsertKeyFrame(1f, new Vector3(20f,20f,0f)); 
    animation.Duration = TimeSpan.FromSeconds(0.25); 

    // Run animation for 4 times 
    animation.IterationCount = 4; 

    // Direction of animation is alternate-reverse i.e. end to start and then start to end and so on. 
    animation.Direction = AnimationDirection.AlternateReverse; 

    heroVisual.StartAnimation("Offset", animation); 
  } 
} 

Комментарии

Учитывая анимацию смещения с числом итераций 3 и двумя ключевыми кадрами (0 и 1) со значением Vector3(5,5,5) для ключевого кадра 0 и значением Vector3(20,20,20) для ключевого кадра 1, в следующей таблице показано поведение анимации с различными значениями для Direction.

НаправлениеПоведение анимации
Норм.Анимация начнется со значения смещения Vector3(5,5,5) и перейдет к Vector3(20,20,20), повторяясь 3 раза, всегда начиная с (5,5,5).
ReverseАнимация начнется с обратным значением и значением смещения (20,20,20) и переходит к (5,5,5), повторяясь 3 раза, всегда начиная с (20,20,20).
АльтернативныйДля первой итерации анимация начнется со значения смещения (5,5,5) и перейдет к (20,20,20). Во второй анимации итерации анимация начнется со значения смещения (20,20,20) и перейдет к (5,5,5). В третьей и последней итерации анимация начнется со смещения (5,5,5) и перейдет к (20,20,20).
AlternateReverseДля первой итерации анимация начнется со значения смещения (20,20,20) и перейдет к (5,5,5). Во второй итерации анимация начнется со значения смещения (5,5,5) и перейдет к (20, 20, 20). В третьей и последней итерации анимация начнется со смещения (20, 20, 20) и перейдет к (5,5,5).

Применяется к