示例#1
0
        public static void Hide(IModalSheetPage sheet)
        {
            App.RootFrame.SizeChanged -= PageOnSizeChanged;

            #region Slide down animation

            var slideAnimation = new DoubleAnimation
            {
                From           = 0,
                To             = ((FrameworkElement)sheet).Height,
                Duration       = new Duration(TimeSpan.FromMilliseconds(200)),
                EasingFunction = new SineEase()
            };

            var sb = new Storyboard();
            sb.Children.Add(slideAnimation);
            Storyboard.SetTarget(slideAnimation, sheet.Popup);
            Storyboard.SetTargetProperty(slideAnimation, "(UIElement.RenderTransform).(TranslateTransform.Y)");

            sb.Completed += (sender, o) =>
            {
                sheet.Popup.IsOpen = false;
                sheet.Popup.Child  = null;
                sheet.OnClosed();
                _currentSheet = null;
            };

            sb.Begin();

            #endregion
        }
示例#2
0
        public static void Show(IModalSheetPage sheet)
        {
            if (_currentSheet != null)
            {
                return;
            }

            _currentSheet = sheet;
            var size    = App.RootFrame;
            var element = (FrameworkElement)sheet;

            element.Width  = size.ActualWidth;
            element.Height = size.ActualHeight;

            App.RootFrame.SizeChanged += PageOnSizeChanged;

            var popup = new Popup
            {
                IsOpen          = true,
                Child           = element,
                RenderTransform = new TranslateTransform
                {
                    Y = element.Height
                }
            };

            #region Slide up animation

            var slideAnimation = new DoubleAnimation
            {
                From           = element.Height,
                To             = 0,
                Duration       = new Duration(TimeSpan.FromMilliseconds(250)),
                EasingFunction = new SineEase()
            };

            var sb = new Storyboard();
            sb.Children.Add(slideAnimation);
            Storyboard.SetTarget(slideAnimation, popup);
            Storyboard.SetTargetProperty(slideAnimation, "(UIElement.RenderTransform).(TranslateTransform.Y)");

            sb.Begin();

            #endregion

            sheet.OnOpened(popup);
        }