3

我有 Grid 和 Scrollviewer 的页面:

<Grid x:name="mainGrid">
  ...
  <ScrollViewer Name="mainScroller" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.HorizontalScrollMode="Enabled">
    ...
  </ScrollViewer>
  ...
</Grid>

我想对垂直触摸移动(用手指向上移动)进行手势处理,但我也想通过水平触摸移动来保留滚动的 mainScroller 内容。

我尝试为 mainGrid ManipulationCompleted="Grid_ManipulationCompleted" 添加:

private void Grid_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
{
  if (e.Cumulative.Translation.Y < -50 && e.Velocities.Linear.Y<1000)
  {
    ...make some action...
  }
}

最终效果是,如果我对 mainGrid 使用 ManipulationMode="TranslateY",则垂直触摸移动有效,但水平滚动无效,当我不使用它时,水平滚动有效,但垂直触摸移动无效。是否有可能使这两个功能都起作用?对不起我的英语不好。

4

1 回答 1

0

它可能有助于理解您的场景,但一般来说,您不应该创建可能与内置手势冲突的新手势,就像您提议的那样。

John Wiese
Microsoft - 高级技术传播者
jwiese@microsoft.com
@johnwiese

于 2014-01-21T16:46:04.977 回答