代码之家  ›  专栏  ›  技术社区  ›  doxsi

Xamarin表单:在基于MasterDetail的项目中通过自定义按钮打开菜单

  •  0
  • doxsi  · 技术社区  · 7 年前

    在我基于MasterDetail的项目中,我需要为特定细节页面的导航部分定制外观。为了避免渲染自定义导航,我设置

        NavigationPage.SetHasNavigationBar(this, false);
    

    导航消失了,然后我通过网格创建了一个背景和一个按钮,如:

    <Grid>
       <Image Source="BackgroundImage.png"/> <!-- This should fill the grid -->
       <Image Source="back_button" HorizontalOptions="StartAndExpand" Aspect="AspectFit" >
          <Image.GestureRecognizers>
            <TapGestureRecognizer Tapped="Handle_Tapped"/>
          </Image.GestureRecognizers>
        </Image>
    </Grid>
    

    点击的手柄应管理主细节的打开/隐藏菜单。我想我需要管理iPresented属性,如

        MasterDetailPage nav = new MasterDetailPage();
        nav.IsPresented = true;
    

    但这没什么用。有什么帮助吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Joehl    7 年前

    您应该能够通过 IsPresented 所有物你尝试的问题是,你创建了一个新的 MasterDetailpage 而不是使用活动的。

    检查当前主页是否为 MasterDetailPage 并在此处更改演示:

    if (Application.Current.MainPage is MasterDetailPage mdp)
    {
        mdp.IsPresented = true;
    }
    

    编辑/重要提示

    上述解决方案仅在当前主页为 MasterDetailPage . 否则,您无法从页面中显示菜单。

    对于自定义逻辑/自定义滑入/滑出菜单,请签出 Nuget-Package "SlideOverKit" .