【问题标题】:How to disable the Hamburger Menu for certain views in WPF?如何禁用 WPF 中某些视图的汉堡菜单?
【发布时间】:2021-04-22 09:01:14
【问题描述】:

我有一个登录页面,我想在应用程序启动时在我的主窗口中显示该页面,该页面左侧有一个汉堡菜单。如何隐藏/禁用它?

这是使用 WPF 和 MahApps.Metro 库创建的桌面应用程序。

【问题讨论】:

    标签: wpf mahapps.metro


    【解决方案1】:

    根据窗口大小,顶部应显示较大的菜单,或在拆分视图窗格中显示带有菜单的汉堡按钮。此功能由自适应触发器提供。下面的代码 sn-p 根据窗口大小 320 和 720 更改水平菜单和汉堡按钮的可见性。

    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup>
            <VisualState x:Name="MediumState">
                <VisualState.StateTriggers>
                    <AdaptiveTrigger MinWindowWidth="720" />
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="HorizontalMenu.Visibility" Value="Visible" />
                    <Setter Target="HamburgerButton.Visibility" Value="Collapsed" />               
                </VisualState.Setters>
            </VisualState>
            <VisualState x:Name="XSmallState">
                <VisualState.StateTriggers>
                   <AdaptiveTrigger MinWindowWidth="320" />
                </VisualState.StateTriggers>
                <VisualState.Setters>
                    <Setter Target="HamburgerButton.Visibility" Value="Visible" />
                </VisualState.Setters>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    

    窗口大小的典型触发器是 320、548、720 和 1024。

    较大窗口的菜单只是在 StackPanel 中定义的:

    <StackPanel x:DeferLoadStrategy="Lazy" x:Name="HorizontalMenu" Orientation="Horizontal" Visibility="Collapsed">
        <Button Content="One" Style="{StaticResource MenuButtonStyle}" />
        <Button Content="Two" Style="{StaticResource MenuButtonStyle}" />
    </StackPanel>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      相关资源
      最近更新 更多