猿问

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

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



四季花海
浏览 101回答 1
1回答

莫回无

访问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)启用所有按钮。
随时随地看视频慕课网APP
我要回答