public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { var list = new List<Timeline>(); if (RotateDirection == RotateAnimationDirection.RotateUp) { list.Add(element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.0, 1.5))); list.Add(element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(0.0, 45) .AddEasingKeyFrame(Duration, 0.0, new QuadraticEase())); } else { list.Add(element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.0, -0.5))); list.Add(element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(0.0, -45) .AddEasingKeyFrame(Duration, 0.0, new QuadraticEase())); } list.Add(element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 0) .AddEasingKeyFrame(Duration/4, 1, new QuadraticEase()) .AddEasingKeyFrame(Duration, 1)); return list; }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { double startRotation = 0.0; double endRotation; if (StartRotation.HasValue) startRotation = StartRotation.Value; else { var compositeTransform = element.RenderTransform as CompositeTransform; if (compositeTransform != null) startRotation = compositeTransform.Rotation; } if (EndRotation.HasValue) endRotation = EndRotation.Value; else endRotation = startRotation + 360.0; return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.5, 0.5)), element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(0.0, startRotation) .AddEasingKeyFrame(Duration, endRotation, Easing) .AddDiscreteKeyFrame(Duration, startRotation), }; }
public override IEnumerable <Timeline> CreateAnimation(FrameworkElement element) { return(new Timeline[] { element.AnimateProperty(AnimationProperty.Opacity) .AddDiscreteKeyFrame(0.0, 1), element.AnimateProperty(AnimationProperty.Rotation) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.TranslateX) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.TranslateY) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.ScaleX) .AddDiscreteKeyFrame(0.0, 1), element.AnimateProperty(AnimationProperty.ScaleY) .AddDiscreteKeyFrame(0.0, 1), element.AnimateProperty(AnimationProperty.RotationX) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.RotationY) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.RotationZ) .AddDiscreteKeyFrame(0.0, 0), element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.5, 0.5)), }); }
public override IEnumerable <Timeline> CreateAnimation(FrameworkElement element) { var transform = GetTransform(element); return(new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0, 1)), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 0) .AddEasingKeyFrame(Duration, 1), element.AnimateProperty(AnimationProperty.TranslateX) .AddEasingKeyFrame(0.0, transform.TranslateX - 700) .AddEasingKeyFrame(Duration * 0.6, transform.TranslateX + 30, new QuadraticEase()) .AddEasingKeyFrame(Duration * 0.8, transform.TranslateX), element.AnimateProperty(AnimationProperty.SkewX) .AddEasingKeyFrame(0.0, 30) .AddEasingKeyFrame(Duration * 0.6, -30) .AddEasingKeyFrame(Duration * 0.8, 15) .AddEasingKeyFrame(Duration, 0), }); }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { return new Timeline[] { element.AnimateProperty(AnimationProperty.Opacity) .AddDiscreteKeyFrame(0.0, 1), element.AnimateProperty(AnimationProperty.Rotation) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.TranslateX) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.TranslateY) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.ScaleX) .AddDiscreteKeyFrame(0.0, 1), element.AnimateProperty(AnimationProperty.ScaleY) .AddDiscreteKeyFrame(0.0, 1), element.AnimateProperty(AnimationProperty.RotationX) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.RotationY) .AddDiscreteKeyFrame(0.0, 0), element.AnimateProperty(AnimationProperty.RotationZ) .AddDiscreteKeyFrame(0.0, 0), element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.5, 0.5)), }; }
public override IEnumerable <Timeline> CreateAnimation(FrameworkElement element) { #if NETFX_CORE || WINDOWS_81_PORTABLE var frame = Window.Current.Content as Frame; var width = (frame != null) ? frame.ActualWidth : 1024; #elif WINDOWS_PHONE var frame = Application.Current.RootVisual as PhoneApplicationFrame; var width = (frame != null) ? frame.ActualWidth : 250; #endif return(new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.0, 0.5)), element.AnimateProperty(AnimationProperty.ScaleX) .AddEasingKeyFrame(0.0, 1.0) .AddEasingKeyFrame(Duration / 2, JumpUp ? 0.95 : 1.05) .AddEasingKeyFrame(Duration, 1, new CubicEase()), element.AnimateProperty(AnimationProperty.ScaleY) .AddEasingKeyFrame(0.0, 1.0) .AddEasingKeyFrame(Duration / 2, JumpUp ? 0.95 : 1.05) .AddEasingKeyFrame(Duration, 1, new CubicEase()), element.AnimateProperty(AnimationProperty.TranslateX) .AddEasingKeyFrame(0.0, width) .AddEasingKeyFrame(Duration, 0, new CubicEase()), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 0) .AddEasingKeyFrame(Duration / 4, 1), }); }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { var transform = GetTransform(element); return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0, 1)), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 0) .AddEasingKeyFrame(Duration*0.6, 1), element.AnimateProperty(AnimationProperty.TranslateX) .AddEasingKeyFrame(0.0, transform.TranslateX + 700) .AddEasingKeyFrame(Duration*0.6, transform.TranslateX - 30, new QuadraticEase()) .AddEasingKeyFrame(Duration*0.8, transform.TranslateX), element.AnimateProperty(AnimationProperty.SkewX) .AddEasingKeyFrame(0.0, -30) .AddEasingKeyFrame(Duration*0.6, 30) .AddEasingKeyFrame(Duration*0.8, -15) .AddEasingKeyFrame(Duration, 0), }; }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { var transform = GetTransform(element); if (Side == Side.Left) return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0,0)), element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(0.0, 0, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration*0.2, 80, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration*0.4, 60, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration*0.6, 80, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration*0.8, 60, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration, 70), element.AnimateProperty(AnimationProperty.TranslateY) .AddEasingKeyFrame(Duration*0.7, transform.TranslateY) .AddEasingKeyFrame(Duration, transform.TranslateY + Distance, new CubicEase { EasingMode = EasingMode.EaseIn}), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration*0.9, 1) .AddEasingKeyFrame(Duration, 0), }; return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(1,0)), element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(0.0, 0, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration*0.2, -80, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration*0.4, -60, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration*0.6, -80, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration*0.8, -60, new CubicEase {EasingMode = EasingMode.EaseInOut}) .AddEasingKeyFrame(Duration,-70), element.AnimateProperty(AnimationProperty.TranslateY) .AddEasingKeyFrame(Duration*0.7, transform.TranslateY) .AddEasingKeyFrame(Duration, transform.TranslateY + Distance, new CubicEase { EasingMode = EasingMode.EaseIn}), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration*0.9, 1) .AddEasingKeyFrame(Duration, 0), }; }
public override IEnumerable <Timeline> CreateAnimation(FrameworkElement element) { var frame = Application.Current.RootVisual as Frame; if (frame == null) { return new Timeline[] {} } ; if (element == null) { return new Timeline[] {} } ; var ttv = FromElement.TransformToVisual(Application.Current.RootVisual); var screenCoords = ttv.Transform(new Point(0, 0)); var size = FromElement.RenderSize; var fromScaleX = size.Width / frame.ActualWidth; var fromScaleY = size.Height / frame.ActualHeight; return(new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.0, 0.0)), element.AnimateProperty(AnimationProperty.TranslateX) .AddEasingKeyFrame(0.0, screenCoords.X) .AddEasingKeyFrame(Duration, 0, new QuadraticEase()), element.AnimateProperty(AnimationProperty.TranslateY) .AddEasingKeyFrame(0.0, screenCoords.Y) .AddEasingKeyFrame(Duration, 0, new QuadraticEase()), element.AnimateProperty(AnimationProperty.ScaleX) .AddEasingKeyFrame(0.0, fromScaleX) .AddEasingKeyFrame(Duration, 1.0, new QuadraticEase()), element.AnimateProperty(AnimationProperty.ScaleY) .AddEasingKeyFrame(0.0, fromScaleY) .AddEasingKeyFrame(Duration, 1.0, new QuadraticEase()), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 0) .AddEasingKeyFrame(Duration / 4, 1) .AddEasingKeyFrame(Duration, 1), }); } } #endif }
public override IEnumerable <Timeline> CreateAnimation(FrameworkElement element) { return(new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.5, 0)), element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(Duration * 0.2, Distance) .AddEasingKeyFrame(Duration * 0.4, -(Distance * 0.66)) .AddEasingKeyFrame(Duration * 0.6, Distance * 0.33) .AddEasingKeyFrame(Duration * 0.8, -(Distance * 0.33)) .AddEasingKeyFrame(Duration, 0) }); }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(HorizontalCentre, 0.5)), element.AnimateProperty(AnimationProperty.ScaleX) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration, 0.95), //, new CubicEase { EasingMode = EasingMode.EaseIn }); element.AnimateProperty(AnimationProperty.ScaleY) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration, 0.95), //, new CubicEase { EasingMode = EasingMode.EaseIn }); element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration/4, 1) .AddEasingKeyFrame(Duration, 0.7), }; }
public override IEnumerable <Timeline> CreateAnimation(FrameworkElement element) { return(new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(HorizontalCentre, 0.5)), element.AnimateProperty(AnimationProperty.ScaleX) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration, 0.95), //, new CubicEase { EasingMode = EasingMode.EaseIn }); element.AnimateProperty(AnimationProperty.ScaleY) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration, 0.95), //, new CubicEase { EasingMode = EasingMode.EaseIn }); element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration / 4, 1) .AddEasingKeyFrame(Duration, 0.7), }); }
public override IEnumerable <Timeline> CreateAnimation(FrameworkElement element) { var transform = GetTransform(element); return(new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.5, 1)), element.AnimateProperty(AnimationProperty.ScaleY) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration * 0.2, 0.6) .AddEasingKeyFrame(Duration * 0.4, 1.2) .AddEasingKeyFrame(Duration * 0.8, 1) .AddEasingKeyFrame(Duration * 1.0, 0.6) .AddEasingKeyFrame(Duration * 1.2, 1), element.AnimateProperty(AnimationProperty.TranslateY) .AddEasingKeyFrame(0.0, transform.TranslateY) .AddEasingKeyFrame(Duration * 0.2, transform.TranslateY) .AddEasingKeyFrame(Duration * 0.4, transform.TranslateY + Distance) .AddEasingKeyFrame(Duration * 0.6, transform.TranslateY + Distance) .AddEasingKeyFrame(Duration * 0.8, transform.TranslateY + (Distance / 2)) .AddEasingKeyFrame(Duration * 1.0, transform.TranslateY), }); }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.5, 0)), element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(Duration*0.2, Distance) .AddEasingKeyFrame(Duration*0.4, -(Distance * 0.66)) .AddEasingKeyFrame(Duration*0.6, Distance * 0.33) .AddEasingKeyFrame(Duration*0.8, -(Distance * 0.33)) .AddEasingKeyFrame(Duration, 0) }; }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { var list = new List<Timeline>(); if (RotateDirection == RotateAnimationDirection.RotateUp) { list.Add(element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.0, 1.5))); list.Add(element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(0.0, 0) .AddEasingKeyFrame(Duration, 45, new QuadraticEase {EasingMode = EasingMode.EaseOut})); } else { list.Add(element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.0, -0.5))); list.Add(element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(0.0, 0) .AddEasingKeyFrame(Duration, -45, new QuadraticEase {EasingMode = EasingMode.EaseOut})); } list.Add(element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration/2, 1) .AddEasingKeyFrame(Duration, 0)); return list; }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { var frame = Application.Current.RootVisual as Frame; if (frame == null) return new Timeline[] {}; if (element == null) return new Timeline[] {}; var ttv = FromElement.TransformToVisual(Application.Current.RootVisual); var screenCoords = ttv.Transform(new Point(0, 0)); var size = FromElement.RenderSize; var fromScaleX = size.Width/frame.ActualWidth; var fromScaleY = size.Height/frame.ActualHeight; return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.0, 0.0)), element.AnimateProperty(AnimationProperty.TranslateX) .AddEasingKeyFrame(0.0, screenCoords.X) .AddEasingKeyFrame(Duration, 0, new QuadraticEase()), element.AnimateProperty(AnimationProperty.TranslateY) .AddEasingKeyFrame(0.0, screenCoords.Y) .AddEasingKeyFrame(Duration, 0, new QuadraticEase()), element.AnimateProperty(AnimationProperty.ScaleX) .AddEasingKeyFrame(0.0, fromScaleX) .AddEasingKeyFrame(Duration, 1.0, new QuadraticEase()), element.AnimateProperty(AnimationProperty.ScaleY) .AddEasingKeyFrame(0.0, fromScaleY) .AddEasingKeyFrame(Duration, 1.0, new QuadraticEase()), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 0) .AddEasingKeyFrame(Duration/4, 1) .AddEasingKeyFrame(Duration, 1), }; }
public override IEnumerable <Timeline> CreateAnimation(FrameworkElement element) { var transform = GetTransform(element); if (Side == Side.Left) { return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0, 0)), element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(0.0, 0, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration * 0.2, 80, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration * 0.4, 60, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration * 0.6, 80, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration * 0.8, 60, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration, 70), element.AnimateProperty(AnimationProperty.TranslateY) .AddEasingKeyFrame(Duration * 0.7, transform.TranslateY) .AddEasingKeyFrame(Duration, transform.TranslateY + Distance, new CubicEase { EasingMode = EasingMode.EaseIn }), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration * 0.9, 1) .AddEasingKeyFrame(Duration, 0), } } ; return(new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(1, 0)), element.AnimateProperty(AnimationProperty.Rotation) .AddEasingKeyFrame(0.0, 0, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration * 0.2, -80, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration * 0.4, -60, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration * 0.6, -80, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration * 0.8, -60, new CubicEase { EasingMode = EasingMode.EaseInOut }) .AddEasingKeyFrame(Duration, -70), element.AnimateProperty(AnimationProperty.TranslateY) .AddEasingKeyFrame(Duration * 0.7, transform.TranslateY) .AddEasingKeyFrame(Duration, transform.TranslateY + Distance, new CubicEase { EasingMode = EasingMode.EaseIn }), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration * 0.9, 1) .AddEasingKeyFrame(Duration, 0), }); } }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { #if NETFX_CORE || WINDOWS_81_PORTABLE var frame = Window.Current.Content as Frame; var width = (frame != null) ? frame.ActualWidth : 1024; #elif WINDOWS_PHONE var frame = Application.Current.RootVisual as PhoneApplicationFrame; var width = (frame != null) ? frame.ActualWidth : 250; #endif return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.0, 0.5)), element.AnimateProperty(AnimationProperty.ScaleX) .AddEasingKeyFrame(0.0, 1.0) .AddEasingKeyFrame(Duration/2, JumpUp ? 0.95 : 1.05) .AddEasingKeyFrame(Duration, 1, new CubicEase()), element.AnimateProperty(AnimationProperty.ScaleY) .AddEasingKeyFrame(0.0, 1.0) .AddEasingKeyFrame(Duration/2, JumpUp ? 0.95 : 1.05) .AddEasingKeyFrame(Duration, 1, new CubicEase()), element.AnimateProperty(AnimationProperty.TranslateX) .AddEasingKeyFrame(0.0, width) .AddEasingKeyFrame(Duration, 0, new CubicEase()), element.AnimateProperty(AnimationProperty.Opacity) .AddEasingKeyFrame(0.0, 0) .AddEasingKeyFrame(Duration/4, 1), }; }
public override IEnumerable<Timeline> CreateAnimation(FrameworkElement element) { var transform = GetTransform(element); return new Timeline[] { element.AnimatePointProperty(AnimationProperty.RenderTransformOrigin) .AddDiscreteKeyFrame(0.0, new Point(0.5, 1)), element.AnimateProperty(AnimationProperty.ScaleY) .AddEasingKeyFrame(0.0, 1) .AddEasingKeyFrame(Duration*0.2, 0.6) .AddEasingKeyFrame(Duration*0.4, 1.2) .AddEasingKeyFrame(Duration*0.8, 1) .AddEasingKeyFrame(Duration*1.0, 0.6) .AddEasingKeyFrame(Duration*1.2, 1), element.AnimateProperty(AnimationProperty.TranslateY) .AddEasingKeyFrame(0.0, transform.TranslateY) .AddEasingKeyFrame(Duration*0.2, transform.TranslateY) .AddEasingKeyFrame(Duration*0.4, transform.TranslateY + Distance) .AddEasingKeyFrame(Duration*0.6, transform.TranslateY + Distance) .AddEasingKeyFrame(Duration*0.8, transform.TranslateY + (Distance/2)) .AddEasingKeyFrame(Duration*1.0, transform.TranslateY), }; }