public BasePage() { _frameworkElementAnimations = new FrameworkElementAnimations(); _frameworkElementAnimations.AddAnimation(new FadeAnimation()); Loaded += async(s, e) => { if (ShouldAnimateIn) { await AnimateIn(); } }; }
public static async Task SlideAndFadeOutAsync(this FrameworkElement element, FrameworkElementAnimations direction, float seconds = 0.3f, bool keepMargin = true, int size = 0) { var storyboard = new Storyboard(); var width = size.Equals(0) ? element.ActualWidth : size; var height = size.Equals(0) ? element.ActualHeight : size; switch (direction) { case FrameworkElementAnimations.Left: storyboard.AddSlideToLeft(seconds, width, keepMargin: keepMargin); break; case FrameworkElementAnimations.Right: storyboard.AddSlideToRight(seconds, width, keepMargin: keepMargin); break; case FrameworkElementAnimations.Top: storyboard.AddSlideToTop(seconds, height, keepMargin: keepMargin); break; case FrameworkElementAnimations.Bottom: storyboard.AddSlideToBottom(seconds, height, keepMargin: keepMargin); break; } storyboard.AddFadeOut(seconds); storyboard.Begin(element); if (seconds != 0.0f) { element.Visibility = Visibility.Visible; } var delay = (int)(seconds * 1000); await Task.Delay(delay); if (Math.Round(element.Opacity).Equals(0.0)) { element.Visibility = Visibility.Hidden; } }