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