2016-12-21 3 views
1

Я немного озадачен дисплеем DisplayMode меню Hamburger. Я хочу, чтобы меню гамбургеров можно было полностью закрыть в нормальных и широких визуальных состояниях. Я пытаюсь установить VisualStateWideDisplayMode на Inline, это действительно inline, но панель не может открыться автоматически. Когда я открываю панель и перехожу на другую страницу, панель закрывается. Но я хочу, чтобы она всегда была открыта. Я пытаюсь установить IsOpen в True, но я не эффект.Шаблон 10: меню гамбургера невозможно открыть после изменения VisualStateDisplayMode

Если я должен написать некоторые триггеры или использовать другой способ? Спасибо за помощь.

следующий код:

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

ответ

1

Я проверил исходный код Template10. Кажется, что это по дизайну. Даже если вы установили значение DisplayMode и IsOpen на странице xaml. Но в кодовом коде HamburgerMenu он всегда менял значение DisplayMode и IsOpen в соответствии со значением VisualStateGroup.CurrentState. Вы можете увидеть это поведение в методе «UpdateVisualStates()» в исходном коде Template10.

Так что я думаю, что если вы хотите изменить это поведение по умолчанию, вам нужно перестроить собственную версию самостоятельно. Или вы можете использовать SplitView, чтобы создать свой собственный контроль HamburgerMenu, такой как James Quick descirbes здесь: Windows 10 SplitView – Build Your First Hamburger Menu

+0

Спасибо большое за ваш ответ, я попробую – Otoha

Смежные вопросы