KeyFrameAnimation.Direction 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
动画的播放方向。
Direction 属性允许你驱动动画从开始到结束或结束到开始或交替开始或结束到开始,如果动画的 IterationCount 大于 1。 这为自定义动画定义提供了一种简单方法。
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
属性值
动画的播放方向。
示例
AnimationDirection 为 Normal
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 为 Reverse
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 为 Alternate
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) ,关键帧 0 的值为 Vector3 (5,5,5) ,对于关键帧 1,值为 Vector3 (20,20,20) ,下表显示了具有不同值 Direction 的动画行为。
方向 | 动画行为 |
---|---|
普通 | 动画将从偏移值 Vector3 (5,5,5) 开始,并转到 Vector3 (20,20,20) ,始终从 (5,5,5) 开始重复 3 次。 |
Reverse | 动画将反向启动,偏移值 (20,20,20) ,并转到 (5,5,5) 重复 3 次,始终从 (20,20,20) 开始。 |
备用 | 对于第一次迭代,动画将从偏移值 (5,5,5) 开始,然后转到 (20,20,20) 。 第二个迭代动画中,动画将从偏移值 (20,20) 开始,然后转到 (5,5,5) 。 在第三次(即最后一次迭代)中,动画将从偏移量 (5,5) 开始,并转到 (20,20,20) 。 |
AlternateReverse | 对于第一次迭代,动画将从偏移值 (20,20,20) 开始,然后转到 (5,5,5) 。 第二次迭代中,动画将从偏移值 (5,5,5) 开始,然后转到 (20,20,20) 。 在第三次(即最后一次迭代)中,动画将从偏移量 (20、20) 开始,并转到 (5,5,5) 。 |