示例#1
0
        private static void ShowPopupLayout(this AbsoluteLayout layout, View popup, PagePopup parameters)
        {
            if (layout != null)
            {
                if (parameters.HasBackgroundOverlay)
                {
                    var overlay = new StackLayout()
                    {
                        AutomationId    = "CoreContainerBackdropId",
                        BackgroundColor = parameters.OverlayColor,
                        Opacity         = parameters.OverlayOpacity
                    };

                    AbsoluteLayout.SetLayoutBounds(overlay, new Rectangle(1, 1, 1, 1));
                    AbsoluteLayout.SetLayoutFlags(overlay, AbsoluteLayoutFlags.All);
                    layout.Children.Add(overlay);
                }


                popup.AutomationId = "CorePopupAutomationId";
                if (parameters.UseParentBindingContext)
                {
                    popup.BindingContext = layout.BindingContext;
                }

                AbsoluteLayout.SetLayoutBounds(popup, parameters.ToPercentRectange());
                AbsoluteLayout.SetLayoutFlags(popup, AbsoluteLayoutFlags.All);
                layout.Children.Add(popup);

                popup.ScaleTo(0.99, 200).ContinueWith(async(t) =>
                {
                    await popup.ScaleTo(1, 200);
                });
            }
        }
示例#2
0
        public static void ShowPagePopup(this Page page, View popup, PagePopup parameters)
        {
            if (popup == null || parameters == null)
            {
                return;
            }

            var layout = page.GetAbsoluteLayout();

            layout?.ShowPopupLayout(popup, parameters);
        }
示例#3
0
        public static void ShowPagePopup(this ContentView view, View popup, PagePopup parameters)
        {
            if (!view.IsAbsoluteLayout() || popup == null || parameters == null)
            {
                return;
            }

            var layout = (AbsoluteLayout)((ContentView)view).Content;

            layout?.ShowPopupLayout(popup, parameters);
        }