Catel.Services.UIVisualizerService.TryDisplayAsPopup C# (CSharp) Method

TryDisplayAsPopup() private method

private TryDisplayAsPopup ( IViewModel viewModel, EventHandler completedProc, StackLayout contentLayout ) : Task
viewModel IViewModel
completedProc EventHandler
contentLayout StackLayout
return Task
        private async Task<bool> TryDisplayAsPopup(IViewModel viewModel, EventHandler<UICompletedEventArgs> completedProc, StackLayout contentLayout)
        {
            bool result = false;
            var currentPage = Application.Current.CurrentPage() as ContentPage;
            if (currentPage != null)
            {
                _callbacks[currentPage] = new Tuple<IViewModel, EventHandler<UICompletedEventArgs>>(viewModel, completedProc);
                // TODO: Look for the top must popup layout inactive
                var popupLayout = currentPage.Content as PopupLayout;
                if (popupLayout != null && !popupLayout.IsPopupActive)
                {
                    currentPage.BackButtonPressed += OnBackButtonPressed;
                    contentLayout.HeightRequest = contentLayout.Children[0].HeightRequest + contentLayout.Children[1].HeightRequest;
                    contentLayout.WidthRequest = contentLayout.Children[0].WidthRequest;
                    result = true;
                    await popupLayout.ShowPopup(contentLayout);
                }
            }

            return result;
        }