2017-08-29 11 views
1

J'essaye d'implémenter un mouvement de diapo pour ouvrir/fermer le hamburguer menu control, mais j'ai du mal à fermer le menu avec la version 1.5.1 du contrôle. Avec la version 1.4.1 je ferme le menu de cette façon:Fermer HamburgerMenu avec un mouvement de curseur

var paneGrid = HamburgerMenu.FindDescendantByName("PaneGrid") as Grid; 
paneGrid.ManipulationMode = ManipulationModes.TranslateX; 
paneGrid.ManipulationCompleted += OnPaneGridManipulationCompleted; 

private void OnPaneGridManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e) { 
    if (e.Cumulative.Translation.X < -50) { 
     HamburgerMenu.IsPaneOpen = false; 
    } 
} 

Mais avec la version 1.5.1 les listviews prennent tout l'espace dans le contrôle et « OnPaneGridManipulationCompleted » ne soit pas tiré ... des idées s'il vous plaît?

Répondre

1

Vous pouvez essayer de définir à la fois HorizontalScrollMode et VerticalScrollMode à Disabled sur la partie intérieure ScrollViewer de ListView laisser by-pass d'entrée le toucher. La valeur par défaut HorizontalScrollMode est déjà Disabled. Vous avez juste besoin de régler manuellement la VerticalScrollMode comme ci-dessous

if (HamburgerMenuControl.FindDescendantByName("ButtonsListView") is ListView listView) 
{ 
    ScrollViewer.SetVerticalScrollMode(listView, ScrollMode.Disabled); 
} 

L'effet secondaire est que vous ne pouvez faire défiler plus le ListView verticalement. Mais généralement vous ne voudriez pas que (mauvais design) de toute façon.

Vous pourriez également être intéressé par this answer. :)