自定义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 ; //触摸结束
}
|
分类: WPF 标签:ScrollViewer,point,触摸,位置,mScrollViewer,滑动,WPF,mIsTouch From: https://www.cnblogs.com/webenh/p/18207292