我正在使用Xamarin.Forms开发一个iPad应用程序。 我希望我的设置页面是模态的,所以它像弹出窗口一样位于上一页。
我一直在尝试我能找到的所有解决方案,而且他们中的大多数似乎都建议我通过按钮来调用它:
await Navigation.PushModalAsync(ModalSettingsPage);
使用它时会发生什么,我的设置页面从下面作为模态页面而不是弹出窗口,它覆盖整个屏幕。
这是我目前的代码:
//Setup button (action bar)
ToolbarItems.Add(new ToolbarItem
{
// Text = "Setup",
Icon = "settings1.png",
Order = ToolbarItemOrder.Default,
Command = new Command(() => Navigation.PushModalAsync(new ModalSettingsPage())) //Action to perfome on click , open modal view
});
此外,如果有任何好方法来定位ToolbarItems,现在有人吗?我有两个项目,并希望每个项目位于每一侧,但默认情况下,它们都位于右侧。
答案 0 :(得分:4)
随着Forms(当前为4.5.0)的发展,推送非全屏模式页面变得很简单。在xaml内容页面的代码后面使用以下代码:
using Xamarin.Forms;
using Xamarin.Forms.PlatformConfiguration;
using Xamarin.Forms.PlatformConfiguration.iOSSpecific;
namespace YourAppWithAModalPage
{
public class ModalPage : ContentPage
{
public ModalPage()
{
// iOS Solution for a ModalPage (popup) which is not fullscreen
On<iOS>().SetModalPresentationStyle(UIModalPresentationStyle.FormSheet);
}
}
}
答案 1 :(得分:1)
表格中没有任何预先制作出的弹出窗口就像我认为你想要的那样。相反,您必须创建它或使用第三方解决方案。例如,here是一个可能适合您的“弹出”实现。