2015-01-23 1 views
0

(Полный код примера можно найти здесь: https://github.com/csvan/TabbedPageModalDemo)В TabbedPage, как я могу нажать другую страницу поверх текущей подстраницы?

Я имею следующую структуру страницы в моем Xamarin.Forms приложение:

namespace TabbedPageModalDemo 
{ 
    public class MyTabbedPage : TabbedPage 
    { 
     public MyTabbedPage() 
     { 
      Title = "Tabbed Page"; 

      Children.Add (new MyTabPage()); 
     } 
    } 
} 

namespace TabbedPageModalDemo 
{ 
    public class MyTabPage : ContentPage 
    { 
     public MyTabPage() 
     { 
      Title = "Tab Page"; 

      var button = new Button { 
       Text = "Open Modal" 
      }; 

      // Using PushModal as an example - PushAsync also fills the whole screen. 
      button.Clicked += (sender, e) => Navigation.PushModalAsync (new MyModalPage()); 

      var stack = new StackLayout(); 
      stack.Children.Add (button); 

      Content = stack; 
     } 
    } 
} 

namespace TabbedPageModalDemo 
{ 
    public class MyModalPage : ContentPage 
    { 
     public MyModalPage() 
     { 
      Title = "Modal Page"; 

      var label = new Label { 
       Text = "I am a modal page!" 
      }; 

      var stack = new StackLayout(); 
      stack.Children.Add (label); 

      Content = stack; 
     } 
    } 
} 

То, что я хочу, заключается в следующем: при нажатии на кнопку, Я бы хотел, чтобы MyModalPage до занимал только то место, которое занимает MyTabPage. В настоящее время он заполняет весь экран, также охватывая MyTabbedPage. Обратите внимание, что то же самое происходит, если вместо этого использовать PushAsync.

Как я могу это решить?

ответ

0

Вы пытались использовать прописку внутри вашей текущей страницы мода?

Padding = new Thickness(0,30,0,0); 
0

Я думаю, что лучшим подходом было бы использовать NavigationPages вместо ContentPage в качестве ваших дочерних элементов. Хороший пример можно увидеть here.

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