Nuestros mejores desarrolladores agotaron sus depósitos de café, por su búsqueda a tiempo completo por la respuesta, hasta que Román halló el hallazgo en Gogs y hoy la compartimos aquí.
Solución:
Mi experiencia dice que PopupLayout de XLabs no funciona correctamente a veces. Pero hay una biblioteca realmente agradable que permite crear ventanas emergentes complejas: Rg.Plugins.Popup. El único problema: falta la implementación de UWP (pero se lanzará).
XLabs tiene un PopupLayout que puede usar para hacer esto.
var pop = new XLabs.Forms.Controls.PopupLayout();
// PatientSearch is a ContentView I was to display in the popup
var search = new PatientSearch(data, this);
search.WidthRequest = 600;
search.HeightRequest = 500;
search.BackgroundColor = new Color (1, 1, 1, 0.8);
pop.ShowPopup(search);
Una solución común que he usado para resolver esto es crear un StackLayout
con todo el formulario dentro e insértelo como elemento secundario de la página que está utilizando actualmente, por ejemplo:
PopupPage popUp; //This will be the layout of the form
Page : ContentPage
var gird = new Gird();
popUp = PopupPage();
popUp.IsVisible = false;
var mainContainer = new StackLayout();
mainContainer.Children.Add(All you UI stuff..);
var btn = new Button();
btn.Clicked += OnButtonClicked;
grid.Children.Add(mainContainer,0,0);
grid.Children.Add(popUp,0,0);
Entonces, para mostrar el popoUP, debe jugar con la propiedad IsVisible, por ejemplo:
void OnButtonClicked()
//You can center the popup using Vertical options or whatever you need
//and to resize the pop up you can do different calculations like
//popUp.Width = ScreenWidth / 2 and popUp.Height = ScreenWidth / 2
popUp.IsVisile = true;
Y esto funciona para todas las plataformas, la única desventaja es que no tendrás el diseño transparente, pero para eso puedes usar:
https://github.com/gaborv/xam-forms-transparent-modal
Comentarios y calificaciones del tutorial
Agradecemos que quieras ayudar nuestra labor ejecutando un comentario o puntuándolo te damos la bienvenida.