编写导航抽屉菜单(滑块菜单).(母版页细节)

本文关键字:菜单 母版页 细节 导航 | 更新日期: 2023-09-27 18:07:50

尝试构建滑块菜单,我正在使用来自官方Xamarin的此文档。MasterPageDetail

很奇怪,它不工作。VS2015智能识别出我MasterDetailPage(我的类是从它继承的),但是当我试图启动应用程序时,出现下一个错误:

类型或命名空间名称'MasterPageDetail'在命名空间'Xamarin中不存在。

发生了什么?你知道任何简单的工作演示吗?我用这个问题作为参考,但我没有得到它的工作…滑块

一些答案使用MasterPageDetail,另一个实现的解决方案在应用程序(类),我需要在一个ContentPage

谢谢伴侣。

编辑:我正在使用Xamarin。窗体,我导入它,我没有任何类叫这样(MasterPageDetail)…很奇怪,这听起来像一个愚蠢的事情,但我不能看到它。

编写导航抽屉菜单(滑块菜单).(母版页细节)

MasterDetailPage是来自Xamarin的类。如果你有相同名称的类,那么它可能是冲突的。

下面是一些有用的链接:

https://developer.xamarin.com/guides/xamarin-forms/user-interface/navigation/master-detail-page/

https://developer.xamarin.com/api/type/Xamarin.Forms.MasterDetailPage/

你也可以从我的Github下载我的例子:

https://github.com/15mgm15/XamarinForms-MasterDetailPage-Recipe

  • 有一个简单的方法来创建一个使用XAML的MasterDetailPage,首先你需要创建一个包含MasterDetailPage的页面和一个包含DetailPageSecondPage,通过这样做,你需要改变这个页面的层次结构为MasterDetailPage,最后在MasterDetailPage中加载一个SecondPage

  • 在你的项目中创建一个新页面- MenuPage,并将页面类型ContentPage更改为MasterDetailPage

    <MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
         BackgroundColor="White"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="YourProject.MenuPage">
    </MasterDetailPage>
    
  • 然后转到MenuPage.cs并将层次结构更改为MasterDetailPage。

    public partial class MenuPage : MasterDetailPage
    {
       public ChatPage()
       {
           InitializeComponent();
       }
    }
    
  • 回到您的XAML页面- MenuPage并添加以下内容:

       <MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="YourProjectName.MenuPage">
    <MasterDetailPage.Master>
      <ContentPage  Title="Menu">
       <StackLayout Orientation="Vertical">
          <!--Here goes your Menu Items-->
         <Button Text="MyFirstButton"/>
         <Button Text="MySecondButton"/>
         <Button Text="MyThirdButton"/>
       </StackLayout>
     </ContentPage>
    </MasterDetailPage.Master>
    <MasterDetailPage.Detail>
      <local:SecondPage/>
    </MasterDetailPage.Detail>
    </MasterDetailPage>
    
  • 最后你需要添加一个引用到你的DetailPage

       <MasterDetailPage xmlns="http://xamarin.com/schemas/2014/forms"
         xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
         x:Class="YourProjectName.MenuPage"
         <!-- Add this line to refer your DetailPage, `SecondPage`-->
         <!-- put your namespace and repeat in assembly -->
         xmlns:local="clr-namespace:YourProjectName;assembly=YourProjectName">
       </MasterDetailPage>
    

我希望它能帮助你!

我明白了。

最后,我清理了所有的项目,并使用下一个例子从零开始编写代码(只添加MasterPageItem.cs,小菜一碟):

工作MasterDetailDemo

我自己改进了演示,创建了一个母版页细节,其中母版页的项目绑定特定的通用页面,它将用自己的属性填充,其依赖于id传递给页面的构造函数。

Github滑块菜单改进演示