Xamarin.forms 如何在按钮/图标单击时以xamarin表单显示导航抽屉

Xamarin.forms 如何在按钮/图标单击时以xamarin表单显示导航抽屉,xamarin.forms,navigation-drawer,Xamarin.forms,Navigation Drawer,我正在尝试为我的应用程序中的页面创建导航抽屉。我能够使用MasterDetailPage并在滑动时获得侧栏。如何在详细信息页面的按钮单击或项目单击上显示侧栏?非常感谢您的帮助。使用MasterDetailPage属性以编程方式显示母版页使用MasterDetailPage属性以编程方式显示母版页您可以参考Xamarin。MasterDetailPage的表单示例 若您单击导航抽屉上的某个项目,使用以下命令可以显示新的详细信息页面 详细信息=新导航页面((页面)Activator.CreateI

我正在尝试为我的应用程序中的页面创建导航抽屉。我能够使用MasterDetailPage并在滑动时获得侧栏。如何在详细信息页面的按钮单击或项目单击上显示侧栏?非常感谢您的帮助。

使用MasterDetailPage属性以编程方式显示母版页

使用MasterDetailPage属性以编程方式显示母版页

您可以参考Xamarin。MasterDetailPage的表单示例

若您单击导航抽屉上的某个项目,使用以下命令可以显示新的详细信息页面

详细信息=新导航页面((页面)Activator.CreateInstance(item.TargetType))


您可以参考Xamarin.Forms示例了解MasterDetailPage

若您单击导航抽屉上的某个项目,使用以下命令可以显示新的详细信息页面

详细信息=新导航页面((页面)Activator.CreateInstance(item.TargetType))


还有一个问题,如果我想在多个页面中设置导航抽屉,是否需要将每个页面定义为MasterDetailPage,或者我们是否可以设置一个公共MasterDetailPage?您通常会有一个MD,并在用户导航时更改详细内容在我的应用程序中,我还可以在详细页面之间进行导航。在这种情况下,我必须创建多个页面实例。有没有办法避免这种情况?您的详细信息应该是一个导航页面,然后包含您的内容。在内容页之间导航时,母版页在我的第一页中仍然可以访问,我有选项detail1、detail2、detail3。这三个是内容页面,这三个页面应该有导航抽屉。当我从firstpage导航到detail1页面时,我可以毫无疑问地查看navigationdrawer。返回到第一页并移动到详细信息2页我收到异常-“System.InvalidOperationException:Master不能已经有父项。”如果我想在多个页面中有导航抽屉,请再查询一次,是否需要将每个页面定义为MasterDetailPage,或者我们可以有一个通用的MasterDetailPage?您通常会有一个MD,并在用户导航时更改详细内容在我的应用程序中,我也有详细页面之间的导航。在这种情况下,我必须创建多个页面实例。有没有办法避免这种情况?您的详细信息应该是一个导航页面,然后包含您的内容。在内容页之间导航时,母版页在我的第一页中仍然可以访问,我有选项detail1、detail2、detail3。这三个是内容页面,这三个页面应该有导航抽屉。当我从firstpage导航到detail1页面时,我可以毫无疑问地查看navigationdrawer。回到第一页,转到详细信息2页,我收到异常-“System.InvalidOperationException:Master必须没有父级。”感谢您的回复。但我的问题是在点击时显示master,而不是细节。无论如何,谢谢你的信息。谢谢你的回复。但我的问题是在点击时显示master,而不是细节。无论如何,谢谢你的信息。
public MainPage ()
    {
        InitializeComponent ();

        masterPage.ListView.ItemSelected += OnItemSelected;

        if (Device.OS == TargetPlatform.Windows) {
            Master.Icon = "swap.png";
        }
    }

    void OnItemSelected (object sender, SelectedItemChangedEventArgs e)
    {
        var item = e.SelectedItem as MasterPageItem;
        if (item != null) {
            Detail = new NavigationPage ((Page)Activator.CreateInstance (item.TargetType));
            masterPage.ListView.SelectedItem = null;
            IsPresented = false;
        }
    }