2016-12-21 2 views
1

Je suis un peu perplexe sur DisplayMode du menu Hamburger. Je veux que le menu hamburger puisse être complètement fermé dans les états visuels normaux et larges. J'essaie de mettre VisualStateWideDisplayMode à Inline, c'est en effet en ligne mais le volet ne peut pas s'ouvrir automatiquement.quand j'ouvre le volet et cliquez sur naviguer vers une autre page, le volet fermé. Mais je veux qu'il puisse toujours être ouvert. J'essaie de définir IsOpen sur True, mais je n'ai aucun effet.Modèle 10: Le menu Hamburger ne peut pas s'ouvrir automatiquement après avoir changé VisualStateDisplayMode

Si je devais écrire des déclencheurs ou utiliser un autre moyen? Merci pour votre aide.

Code

comme ceci:

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

Répondre

1

J'ai vérifié le code source de Template10. Il semble que c'est par conception. Même si vous avez défini la valeur DisplayMode et IsOpen sur la page xaml. Mais dans le code-behind de HamburgerMenu, il changera toujours la valeur de DisplayMode et IsOpen en fonction de la valeur de VisualStateGroup.CurrentState. Vous pouvez voir ce comportement dans la méthode "UpdateVisualStates()" dans le code source Template10.

Donc je pense que si vous voulez changer ce comportement par défaut, vous devez reconstruire vous-même une version personnalisée. Ou vous pouvez utiliser SplitView pour faire votre contrôle personnalisé HamburgerMenu comme James Quick descirbes ici: Windows 10 SplitView – Build Your First Hamburger Menu

+0

Merci beaucoup pour votre réponse, je vais l'essayer – Otoha