2017-08-29 88 views
1

我试图执行滑动手势来打开/关闭hamburguer menu control,但我在用控件的版本1.5.1关闭菜单时遇到问题。随着1.4.1版本我关闭菜单是这样的:用滑动手势关闭HamburgerMenu

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; 
    } 
} 

但随着1.5.1版本的列表视图,采取控制和所有空间“OnPaneGridManipulationCompleted”不被解雇......任何想法吗?

回答

1

您可以尝试在ListView的内心ScrollViewer让触摸输入旁路它同时设置HorizontalScrollModeVerticalScrollModeDisabled

由于默认值HorizontalScrollMode已经是Disabled。你只需要手动设置VerticalScrollMode如下

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

的副作用是,你可以不再滚动ListView垂直。但一般来说,你不会想要那个(坏设计)。

您可能也有兴趣this answer我的。 :)