コード例 #1
0
        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);
コード例 #2
0
        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);
コード例 #3
0
        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);
        }
コード例 #4
0
        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;
        }