我正在尝试实现一个幻灯片手势来打开/关闭hamburguer menu control,但是我无法使用控件的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,listviews会占用控件中的所有空格,并且“OnPaneGridManipulationCompleted”不会被触发......有什么想法吗?
答案 0 :(得分:1)
您可以尝试在HorizontalScrollMode
内部VerticalScrollMode
上设置Disabled
和ListView
至ScrollViewer
,让触摸输入绕过它。
由于HorizontalScrollMode
的默认值已为Disabled
。您只需手动设置VerticalScrollMode
,如下所示
if (HamburgerMenuControl.FindDescendantByName("ButtonsListView") is ListView listView)
{
ScrollViewer.SetVerticalScrollMode(listView, ScrollMode.Disabled);
}
副作用是您无法再垂直滚动ListView
。但通常你不会想要那个(糟糕的设计)。
您可能也对我的this answer感兴趣。 :)