为了账号安全,请及时绑定邮箱和手机立即绑定

如何在运行时编辑汉堡菜单项列表?

如何在运行时编辑汉堡菜单项列表?

C#
四季花海 2023-07-09 16:15:09
我在 UWP 应用程序中使用模板 10。但是我需要根据我的情况启用/禁用汉堡按钮。我IsFullScreen最初将属性设置为 true 是因为我想在用户登录应用程序后显示汉堡菜单。因为 Shell 页面最初是在运行时加载的,如果我创建它的新实例,那么应用程序将在全屏上运行,并且我无法看到菜单。我在这里先向您的帮助表示感谢。
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

访问Shell页面实例

您首先需要能够访问Shell页面实例。您可以通过两种方式执行此操作。如果您知道,总会有一个实例,您可以添加一个static指向它的属性,如下所示:


public static Shell Instance { get; private set; }

并在构造函数中设置实例:


public Shell()

{

    //InitializeComponent(), etc....

    Instance = this;

}

现在,您可以从任何地方Shell.Instance访问它。Shell如果理论上您可以拥有多个窗口,则可以访问当前using的实例Windows.Current.Content。如果您使用 Template 10 汉堡包模板,您将执行以下操作:


var dialog = (ModalDialog)Window.Current.Content;

var shell = (Shell)dialog.Content;

禁用/启用

控制中的项目HamburgerMenu具有类型HamburgerButtonInfo并具有IsEnabled可用于启用/禁用的属性。如果将 a 添加x:Name="Menu"到HamburgerMenu控件,则可以编写如下启用方法:


public void SetMenuEnabled(bool enable)

{

   foreach (var primaryButton in Menu.PrimaryButtons)

   {

      primaryButton.IsEnabled = false;

   }

   foreach (var secondaryButton in Menu.SecondaryButtons)

   {

      secondaryButton.IsEnabled = false;

   }

}

您可以将此方法放在Shell页面中并通过调用它Shell.Instance.SetMenuEnabled(false)来禁用和Shell.Instance.SetMenuEnabled(true)启用所有按钮。


查看完整回答
反对 回复 2023-07-09
  • 1 回答
  • 0 关注
  • 66 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信