(此处提供完整的代码示例: https://github.com/csvan/TabbedPageModalDemo)
我的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 :(得分:0)
您是否尝试在当前模态页面中使用填充?
Padding = new Thickness(0,30,0,0);
答案 1 :(得分:0)
我认为更好的方法是使用NavigationPages而不是ContentPage作为Child-Elements。可以看到一个很好的例子here。