Exemple #1
0
 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;
            }
        }