/// <summary> /// Slides the element in with translate transform /// </summary> /// <param name="element">The element.</param> /// <param name="direction">The direction.</param> /// <param name="duration">The duration.</param> /// <param name="startOffset">The start offset.</param> /// <param name="easing">The easing.</param> /// <param name="completedCallback">The completed callback.</param> public static void SlideIn(UIElement element, SlideFromDirection direction, TimeSpan duration, double startOffset, IEasingFunction easing, Action completedCallback = null) { if (element == null) { return; } var da = new DoubleAnimation(); da.Duration = duration; da.EasingFunction = easing; da.To = 0; if (completedCallback != null) { da.Completed += (s, e) => { completedCallback(); }; } TranslateTransform transform = FindOrCreateRenderXform(element); switch (direction) { case SlideFromDirection.Top: da.From = -startOffset; transform.BeginAnimation(TranslateTransform.YProperty, da); break; case SlideFromDirection.Left: da.From = -startOffset; transform.BeginAnimation(TranslateTransform.XProperty, da); break; case SlideFromDirection.Right: da.From = startOffset; transform.BeginAnimation(TranslateTransform.XProperty, da); break; case SlideFromDirection.Bottom: da.From = startOffset; transform.BeginAnimation(TranslateTransform.YProperty, da); break; } }
/// <summary> /// Slides the element in with translate transform. /// </summary> /// <param name="element">The element.</param> /// <param name="direction">The direction.</param> /// <param name="duration">The duration.</param> /// <param name="startOffset">The start offset.</param> public static void SlideIn(UIElement element, SlideFromDirection direction, TimeSpan duration, double startOffset) { SlideIn(element, direction, duration, startOffset, TypicalEasing); }