仅在屏幕的一部分上显示模态页面

时间:2016-03-29 08:19:54

标签: xamarin xamarin.forms modal-dialog toolbar

我正在使用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,现在有人吗?我有两个项目,并希望每个项目位于每一侧,但默认情况下,它们都位于右侧。

2 个答案:

答案 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是一个可能适合您的“弹出”实现。