internal partial ValueTask Show(Forms.VisualElement visualElement, SnackBarOptions arguments) { var formsAppBar = System.Windows.Application.Current.MainWindow.FindChild <FormsAppBar>("PART_BottomAppBar"); var currentContent = formsAppBar.Content; var snackBar = new SnackBarLayout(arguments); snackBarTimer = new Timer { Interval = (int)arguments.Duration.TotalMilliseconds }; snackBarTimer.Tick += (sender, e) => { formsAppBar.Content = currentContent; snackBarTimer.Stop(); arguments.SetResult(false); }; snackBar.OnSnackBarActionExecuted += () => { formsAppBar.Content = currentContent; snackBarTimer.Stop(); }; snackBarTimer.Start(); var border = new Border { CornerRadius = new CornerRadius(arguments.CornerRadius.Left, arguments.CornerRadius.Top, arguments.CornerRadius.Right, arguments.CornerRadius.Bottom) }; border.Child = snackBar; formsAppBar.Content = border; return(default);
internal ValueTask Show(Forms.VisualElement visualElement, SnackBarOptions arguments) { var snackBarLayout = new SnackBarLayout(arguments); var pageControl = Platform.GetRenderer(visualElement).ContainerElement.Parent; var grid = (Grid)(FindVisualChildByName <Border>(pageControl, "BottomCommandBarArea")?.Parent ?? throw new NotSupportedException("Anchor Not Supported on UWP")); var snackBarRow = new RowDefinition() { Height = GridLength.Auto }; snackBarTimer = new DispatcherTimer { Interval = arguments.Duration }; snackBarTimer.Tick += (sender, e) => { grid.Children.Remove(snackBarLayout); grid.RowDefinitions.Remove(snackBarRow); snackBarTimer.Stop(); arguments.SetResult(false); }; snackBarLayout.OnSnackBarActionExecuted += () => { grid.Children.Remove(snackBarLayout); grid.RowDefinitions.Remove(snackBarRow); snackBarTimer.Stop(); arguments.SetResult(true); }; snackBarTimer.Start(); grid.RowDefinitions.Add(snackBarRow); grid.Children.Add(snackBarLayout); Grid.SetRow(snackBarLayout, grid.RowDefinitions.Count - 1); return(default);
internal void Show(Forms.Page page, SnackBarOptions arguments) { var snackBarLayout = new SnackBarLayout(arguments); var pageControl = Platform.GetRenderer(page).ContainerElement.Parent; var grid = FindVisualChildByName <Border>(pageControl, "BottomCommandBarArea").Parent as Grid; var snackBarRow = new RowDefinition() { Height = GridLength.Auto }; snackBarTimer = new DispatcherTimer { Interval = arguments.Duration }; snackBarTimer.Tick += (sender, e) => { grid.Children.Remove(snackBarLayout); grid.RowDefinitions.Remove(snackBarRow); snackBarTimer.Stop(); arguments.SetResult(false); }; snackBarLayout.OnSnackBarActionExecuted += () => { grid.Children.Remove(snackBarLayout); grid.RowDefinitions.Remove(snackBarRow); snackBarTimer.Stop(); arguments.SetResult(true); }; snackBarTimer.Start(); grid.RowDefinitions.Add(snackBarRow); grid.Children.Add(snackBarLayout); Grid.SetRow(snackBarLayout, grid.RowDefinitions.Count - 1); }
internal void Show(Page page, SnackBarOptions arguments) { var formsAppBar = System.Windows.Application.Current.MainWindow.FindChild <FormsAppBar>("PART_BottomAppBar"); var currentContent = formsAppBar.Content; var snackBar = new SnackBarLayout(arguments); snackBarTimer = new Timer { Interval = (int)arguments.Duration.TotalMilliseconds }; snackBarTimer.Tick += (sender, e) => { formsAppBar.Content = currentContent; snackBarTimer.Stop(); arguments.SetResult(false); }; snackBar.OnSnackBarActionExecuted += () => { formsAppBar.Content = currentContent; snackBarTimer.Stop(); arguments.SetResult(true); }; snackBarTimer.Start(); formsAppBar.Content = snackBar; }