模板10:更改VisualStateDisplayMode后,汉堡菜单无法自动打开

时间:2016-12-21 08:22:53

标签: uwp uwp-xaml template10 hamburger-menu

我对Hamburger Menu的DisplayMode有点疑惑。 我希望汉堡包菜单可以在普通和宽视觉状态下完全关闭。 我尝试将VisualStateWideDisplayMode设置为Inline,它确实内联,但是窗格无法自动打开。当我打开窗格并单击导航到另一个页面时,窗格关闭。但我想要它可以永远开放。 我尝试将IsOpen设置为True,但我没有效果。

如果我应该写一些触发器或使用其他方式? 感谢帮助。

像这样的代码:

     <Controls:HamburgerMenu x:Name="MyHamburgerMenu" 
                             VisualStateNormalDisplayMode="Overlay"
                             VisualStateWideDisplayMode="Inline"
                             IsOpen="True"/>

2 个答案:

答案 0 :(得分:1)

我查看了Template10的源代码。它似乎是设计的。即使您已在xaml页面上设置了DisplayMode和IsOpen值。但是在HamburgerMenu的代码隐藏中,它总是会根据VisualStateGroup.CurrentState的值改变DisplayMode和IsOpen的值。 你可以在&#34; UpdateVisualStates()&#34;中看到这种行为。 Template10源代码中的方法。

所以我认为如果你想改变这个默认行为,你需要自己重建一个自定义版本。或者你可以使用SplitView来制作你的自定义HamburgerMenu控件,如James Quick descirbes:Windows 10 SplitView – Build Your First Hamburger Menu

答案 1 :(得分:0)

我相信你发现了一个错误。我在这里报告https://github.com/Windows-XAML/Template10/issues/1381

感谢您使用Template 10