首页 > 解决方案 > 自 Xamarin.Forms 中的按钮以来,我如何获取功能或创建调用主详细信息页面或菜单的按钮?

问题描述

我制作了一个自定义导航栏,我想调用菜单,但由于我自己的菜单按钮按钮位于视图主页中

<MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
                  xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
                   xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                  xmlns:views="clr-namespace:Emprender.Views"
                  x:Class="Emprender.Views.MainPage"
                  MasterBehavior="Popover">
    <MasterDetailPage.Master>
        <views:MenuPage/>
    </MasterDetailPage.Master>

    <MasterDetailPage.Detail>
        <NavigationPage>
            <NavigationPage.Icon>
                <OnPlatform x:TypeArguments="FileImageSource">
                    <On Platform="iOS" Value="menu.png"/>
                    <On Platform="Android" Value="menu.png"/>
                </OnPlatform>
            </NavigationPage.Icon>
            <x:Arguments>
                <views:Home />
            </x:Arguments>
        </NavigationPage>
    </MasterDetailPage.Detail>

</MasterDetailPage>

标签: androidiosxamarin.forms

解决方案


你想达到像下面的GIF这样的结果吗?

在此处输入图像描述

MasterDetailPage.IsPresented您可以通过设置来打开菜单页面true

这是我在views:Home页面中的代码。我不知道你想调用哪个地方的菜单页面。所以,我在两个地方添加它。

  private void ToolbarItem_Clicked(object sender, EventArgs e)
        {
            MainPage.isMasterPres.IsPresented = true;
        }

        private void Button_Clicked(object sender, EventArgs e)
        {
            MainPage.isMasterPres.IsPresented = true;
        }

在中MainPage,我为So设置了一个公共静态值MasterDetailPage,我们可以在主页视图中调用它。

  public static MasterDetailPage isMasterPres;
        public MainPage()
        {
            InitializeComponent();
            isMasterPres = this;
            MasterBehavior = MasterBehavior.Popover;

            MenuPages.Add((int)MenuItemType.Browse, (NavigationPage)Detail);
        }

您可以使用 messageCenter 来实现它,就像下面的线程一样。

如何从另一个内容页面按钮单击打开主详细菜单?


推荐阅读