Metro应用程序中的Scrollviewer - 通过触摸滚动并处理其他手势

时间:2012-12-12 12:57:58

标签: windows-8 microsoft-metro scrollviewer gestures

我有网格和Scrollviewer的页面:

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

我想为垂直触摸移动做手势处理(用手指向上移动),但我想通过水平触摸移动来保持滚动mainScroller内容。

我尝试添加for 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”,那么垂直触摸移动工作,但水平滚动不工作,而当我不使用它时,水平滚动工作,但垂直触摸不移动。是否有可能使这两个功能都有用? 抱歉我的英文。

1 个答案:

答案 0 :(得分:0)

了解您的场景可能会有所帮助,但一般情况下,您不应该创建可能与内置手势冲突的新手势,就像您提出的那样。

John Wiese
微软 - 高级技术布道者 jwiese@microsoft.com
@johnwiese