1

我正在尝试实现滑动手势来打开/关闭汉堡菜单控件,但我无法使用 1.5.1 版本的控件关闭菜单。在 1.4.1 版本中,我以这种方式关闭菜单:

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”不会被解雇......请问有什么想法吗?

4

1 回答 1

1

您可以尝试在' 的内部同时设置HorizontalScrollModeVerticalScrollMode以让触摸输入绕过它。DisabledListViewScrollViewer

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

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

副作用是您不能再ListView垂直滚动。但通常你无论如何都不会想要那个(糟糕的设计)。

您可能也对我的这个答案感兴趣。:)

于 2017-08-29T12:25:12.897 回答