/// <summary> /// 通过表达式指定动画开始的值。 /// </summary> /// <param name="expression"></param> /// <returns></returns> public EasyTransitionAnimationFluentContext <T> FromExpression(String expression) { if (FromKeyFrameContext != null) { throw new InvalidOperationException("From 已经被指定。"); } FromKeyFrameContext = new ExpressionKeyFrameFluentContext { Value = expression, Progress = 0 }; return(this); }
protected override void InsertExpressionKeyFrame(ExpressionKeyFrameFluentContext keyFrameContext) { switch (AnimationKind) { case TransitionAnimationKind.Relative: (CompositionAnimation as KeyFrameAnimation).InsertExpressionKeyFrame(keyFrameContext.Progress, $"this.StartingValue + {keyFrameContext.Value}", keyFrameContext.EasingFunction); break; case TransitionAnimationKind.Absolute: (CompositionAnimation as KeyFrameAnimation).InsertExpressionKeyFrame(keyFrameContext.Progress, keyFrameContext.Value, keyFrameContext.EasingFunction); break; default: throw new ArgumentOutOfRangeException(); } }
protected override void InsertExpressionKeyFrame(ExpressionKeyFrameFluentContext keyFrameContext) { (CompositionAnimation as KeyFrameAnimation).InsertExpressionKeyFrame(keyFrameContext.Progress, keyFrameContext.Value, keyFrameContext.EasingFunction); }
protected abstract void InsertExpressionKeyFrame(ExpressionKeyFrameFluentContext keyFrameContext);