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我的。 :)