-1

在 Xamarin.Forms 中,我需要创建一个弹出窗口,在弹出窗口中显示登录页面。

这是我使用 xlab 弹出控件的代码。

MainPage l = new MainPage();    
Navigation.PushModalAsync(l); 
PopupLayout popupLayout = new PopupLayout();
popupLayout.Content = l.Content;
ShowPopup(l);

MainPage扩展ContentPage,目前它在登录屏幕上工作正常,但我的要求是将其显示为弹出窗口。有人可以帮忙吗?或者有没有其他方法可以做到这一点?

4

2 回答 2

3

这是你的做法

private async void ShowPopup()
{
     //Create `ContentPage` with padding and transparent background
     ContentPage loginPage = new ContentPage
     {
           BackgroundColor = Color.FromHex("#D9000000"),
           Padding = new Thickness(20, 20, 20, 20)
     };

     // Create Children

     //Create desired layout to be a content of your popup page. 
     var contentLayout = new StackLayout
     {
          VerticalOptions = LayoutOptions.CenterAndExpand,
          HorizontalOptions = LayoutOptions.FillAndExpand,
          Orientation = StackOrientation.Vertical,
          Children = 
          {
              // Add children
          }
     };

     //set popup page content:
     loginPage.Content = contentLayout;

     //Show Popup
     await Navigation.PushModalAsync(loginPage, false);
}
于 2016-08-22T12:02:16.967 回答
0

@misho 谢谢你的帮助

这是我的最终工作代码。但它不能称为弹出窗口。这正好可以实现我的目的。

        private async void ShowPopup()
        {
            ContentPage detailsPage = new ContentPage
            {
                BackgroundColor = Color.Transparent,// Color.FromHex("#00F0F8FF"),
                Padding = new Thickness(40, 40, 40, 40)
            };
            MainPage l = new MainPage();
            detailsPage.Content = l.Content;
            Button b = l.FindByName<Button>("btnClose");
            b.Clicked += ((o2, e2) =>
            {
                this.Navigation.PopModalAsync();
            });
            await Navigation.PushModalAsync(detailsPage, false);
        }

嗨@Misho,这里是实际的屏幕截图操作弹出屏幕。 在此处输入图像描述

于 2016-08-22T14:33:17.177 回答