예제 #1
0
        /// <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);
        }
예제 #2
0
        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();
            }
        }
예제 #3
0
 protected override void InsertExpressionKeyFrame(ExpressionKeyFrameFluentContext keyFrameContext)
 {
     (CompositionAnimation as KeyFrameAnimation).InsertExpressionKeyFrame(keyFrameContext.Progress, keyFrameContext.Value, keyFrameContext.EasingFunction);
 }
예제 #4
0
 protected abstract void InsertExpressionKeyFrame(ExpressionKeyFrameFluentContext keyFrameContext);