- 开启触屏滚动 ScrollViewer在鼠标模式下可以通过鼠标滚轮或者操作滚动条进行内容滚动,如果需要在触屏下能通过手指直接划动内容则需要一些设置:
- 设置PanningMode的值
//PanningMode的值包含:
// 摘要:
// System.Windows.Controls.ScrollViewer 没有响应触摸屏输入。
None = 0,
//
// 摘要:
// System.Windows.Controls.ScrollViewer 仅水平滚动。
HorizontalOnly = 1,
//
// 摘要:
// System.Windows.Controls.ScrollViewer 仅垂直滚动。
VerticalOnly = 2,
//
// 摘要:
// System.Windows.Controls.ScrollViewer 水平和垂直滚动。
Both = 3,
//
// 摘要:
// System.Windows.Controls.ScrollViewer 执行滚动操作使得用户移动手指时首先水平。 如果用户移垂直第一,移动将被视为鼠标事件。
// 之后 System.Windows.Controls.ScrollViewer 开始向下滚动,它将水平和垂直滚动。
HorizontalFirst = 4,
//
// 摘要:
// System.Windows.Controls.ScrollViewer 执行滚动操作使得用户移动手指时先垂直。 如果用户移首先水平,移动将被视为鼠标事件。
// 之后 System.Windows.Controls.ScrollViewer 开始向下滚动,它将水平和垂直滚动。
VerticalFirst = 5
- 设置了PanningMode值后,在滚动到底或者顶的时候会出现在窗口抖动的情况,这时如果产品说不能抖时,需要在窗体下的第一层容器增加
ManipulationBoundaryFeedback
事件的订阅:
<Window ...>
<Grid ManipulationBoundaryFeedback="OnManipulationBoundaryFeedback">
<ScrollViewer PanningMode=VerticalOnly....>
....
</ScrollViewer>
</Grid>
</Window>
//.cs文件
private void OnManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
e.Handled = true;
}
- 还有其它相关的设置如:PanningRatio、PanningDeceleration等参考ScrollViewer