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 }
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); }