ScrollViewer支持鼠标拖拽及触摸touch拖拽

作者:袖梨 2022-06-25

案例程序将指定目录中的图片读入到StackPanel里现实,再把StackPanel放置到ScrollViewer中。

就是ScrollViewer可以支持左右上下的滚动,都是基于鼠标的。

如何让ScrollViewer支持touch触摸拖拽那?

一开始我还想着给他加上touchmove事件来着。

但是一查,ScrollViewer竟然天生支持touch。。只需要设置一个属性:

.


ScrollViewer直接支持Panning(平面拖动)操作,只要将设置PanningMode属性即可。

例如:this.scrollViewer_MainPanel.PanningMode = PanningMode.HorizontalOnly;

ScrollViewer中的内容滚动到边界是还会自动出发Window Bounce(窗体弹跳),以叫做Panning Feedback(拖动回馈)。

ScollViewer滚动时默认以像素为单元,滚动起来看上去是连贯的,如果以被滚动内容为单元,可以设置ScrollViewer的CanContentScroll属性为true,滚动是会对齐内容的开始位置,看上去滚动是跳动的。

例如:this.scrollViewer_MainPanel.CanContentScroll = true;

视频中,点击CheckBox就是切换CanContentScroll属性。CanContentScroll属性开启前,图片是连续滚动的,而开启后图片滚动会直接跳动的每张图片的开始处。

提示1:ScrollViewer向滚动默认是禁用的,如果需要支持横向滚动,需要ScrollBarVisibility设置为除Disable以外其他的选项。

提示2:拖动Scrollviewer默认是有惯性的,ScrollViewer的PanningDeceleration属性是用于设置惯性运动的减速率的,默认值0.001,表现为很自然的惯性运动。案例中把这个属性设置为1,减速很快,就感觉不到惯性了。

相关文章

精彩推荐