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



我在 UWP 应用程序中使用模板 10。但是,我需要根据我的条件启用/禁用汉堡包按钮。我最初将IsFullScreen属性设置为 true,因为我想在用户登录应用程序后显示汉堡菜单。因为 Shell 页面最初是在运行时加载的,然后如果我创建它的新实例,那么应用程序将全屏运行,我无法看到菜单。提前感谢您的帮助。

访问命令行管理程序页面实例

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

public static Shell Instance { get; private set; }

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

public Shell()
{
    //InitializeComponent(), etc....
    Instance = this;
}

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

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

禁用/启用

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

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)来启用所有按钮。

最新更新