2016-08-22 2 views
-1

В Xamarin.Forms Мне нужно создать всплывающее окно, отображающее страницу входа в всплывающее окно.Как создать пользовательское всплывающее окно в Xamarin.Form

вот мой код, используя управление всплывающим окном xlab.

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

MainPage расширяет ContentPage и в настоящее время его работает отлично на экране входа в систему, но мое требование, чтобы показать его в качестве всплывающего окна. Может ли кто-нибудь помочь в этом? Или есть ли другой способ сделать это?

ответ

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); 
} 
+0

В всплывающем окне содержимого на кнопке щелкните, как закрыть этот всплывающий экран? вернуться с параметрами и уведомить экран звонящего? –

+0

Вы можете вызвать метод SendBackButtonPressed() из всплывающей подсказки на кнопке, нажав кнопку – arsena

+1

Привет, мишо спасибо за вашу помощь, но SendBackButtonPressed() ничего не делает. и это не всплывающее окно, его новая страница –

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); 
     } 

Hi @Misho здесь фактический экран снят с всплывающего окна. enter image description here

+0

Можете ли вы показать мне, как это выглядит? – arsena

Смежные вопросы