示例#1
0
        public IFutureAnimation Create(FrameworkElement element)
        {
            void SetUpElement()
            {
                element.Visibility = InitialVisibility;
                element.Opacity    = InitialOpacity;
            }

            var animation = new DoubleAnimation
            {
                BeginTime      = Delay,
                Duration       = Duration,
                EasingFunction = Easing,
                To             = TargetOpacity
            };

            Storyboard.SetTarget(animation, element);
            Storyboard.SetTargetProperty(animation, OpacityPath);

            void PostAction() => element.Visibility = TargetVisibility;

            return(animation
                   .ToFutureAnimation()
                   .Before(SetUpElement)
                   .Then(PostAction));
        }
示例#2
0
        public IFutureAnimation Create(FrameworkElement element)
        {
            void SetUpElement()
            {
                var transform = GetOrCreateTransform(element);

                element.RenderTransformOrigin = new Point(0.5, 0.5);

                transform.ScaleX = From;
                transform.ScaleY = From;
            }

            var scaleXAnimation = new DoubleAnimation
            {
                BeginTime      = Delay,
                Duration       = Duration,
                EasingFunction = Easing,
                To             = To
            };

            var scaleYAnimation = new DoubleAnimation
            {
                BeginTime      = Delay,
                Duration       = Duration,
                EasingFunction = Easing,
                To             = To
            };

            Storyboard.SetTarget(scaleXAnimation, element);
            Storyboard.SetTargetProperty(scaleXAnimation, ScaleXPath);

            Storyboard.SetTarget(scaleYAnimation, element);
            Storyboard.SetTargetProperty(scaleYAnimation, ScaleYPath);

            return(scaleXAnimation.ToFutureAnimation()
                   .Pair(scaleYAnimation.ToFutureAnimation())
                   .Before(SetUpElement));
        }