自定义ScrollViewer的Touch事件--触摸上下移动ScrollViewer滚动到指定位置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
double mPointY;//触摸点的Y坐标
double mOffsetY;//滚动条当前位置
bool mIsTouch = false;//是否触摸
//触摸事件
private void mScrollViewer_TouchDown(object sender, TouchEventArgs e)
{
    mIsTouch = true;//正在触摸
    mOffsetY = this.mScrollViewer.VerticalOffset;//获取ScrollViewer滚动条当前位置
    TouchPoint point = e.GetTouchPoint(mScrollViewer);//获取相对于ScrollViewer的触摸点位置
    mPointY = point.Position.Y;//触摸点的Y坐标
}
 
//触摸移动事件
private void mScrollViewer_TouchMove(object sender, TouchEventArgs e)
{
    if (mIsTouch == true)//如果正在触摸
    {
        TouchPoint point = e.GetTouchPoint(mScrollViewer);//获取相对于ScrollViewer的触摸点位置
        double DiffOffset = point.Position.Y - mPointY;//计算相对位置
        this.mScrollViewer.ScrollToVerticalOffset(mOffsetY - DiffOffset);//ScrollViewer滚动到指定位置
    }
}
 
//触摸结束事件
private void mScrollViewer_TouchUp(object sender, TouchEventArgs e)
{
    mIsTouch = false;//触摸结束
}

 

posted @   chrisyehGone  阅读(1477)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现
点击右上角即可分享
微信分享提示