/// <summary> /// 指定动画开始的值。 /// </summary> /// <param name="value"></param> /// <returns></returns> public EasyTransitionAnimationFluentContext <T> From(T value) { if (FromKeyFrameContext != null) { throw new InvalidOperationException("From 已经被指定。"); } FromKeyFrameContext = new KeyFrameFluentContext <T> { Value = value, Progress = 0 }; return(this); }
protected override void InsertKeyFrame(KeyFrameFluentContext <Vector3> keyFrameContext) { switch (AnimationKind) { case TransitionAnimationKind.Relative: (CompositionAnimation as KeyFrameAnimation).InsertExpressionKeyFrame(keyFrameContext.Progress, $"this.StartingValue + Vector3({keyFrameContext.Value.X}, {keyFrameContext.Value.Y}, {keyFrameContext.Value.Z})", keyFrameContext.EasingFunction); break; case TransitionAnimationKind.Absolute: (CompositionAnimation as Vector3KeyFrameAnimation).InsertKeyFrame(keyFrameContext.Progress, keyFrameContext.Value, keyFrameContext.EasingFunction); break; default: throw new ArgumentOutOfRangeException(); } }
protected override void InsertKeyFrame(KeyFrameFluentContext <Color> keyFrameContext) { (CompositionAnimation as ColorKeyFrameAnimation).InsertKeyFrame(keyFrameContext.Progress, keyFrameContext.Value, keyFrameContext.EasingFunction); }
protected abstract void InsertKeyFrame(KeyFrameFluentContext <T> keyFrameContext);