WPF触摸应用使用多点触摸,如何获取两个触点各自的坐标?

SUNXW71 2015-05-27 09:48:39
现在需要对图片进行一维缩放,只缩放X轴大小或者只缩放Y轴大小,使用ManipulationStartingEventArgs、ManipulationDeltaEventArgs、ManipulationCompletedEventArgs这一套机制来实现。
缩放是由这一句控制的: matrix.ScaleAt(deltaManipulation.Scale.X, deltaManipulation.Scale.Y, center.X, center.Y);
但是现在缩放是二维同步缩放,我想通过获取多点触摸时的两个手指的坐标来获得两个手指连线与X轴的夹角,用夹角是否大于45度判断该缩放是X轴方向还是Y轴方向的。。但是怎么在多点触摸事件中获取触点坐标呢?
或者各位有别的方法可以实现仅基于手势的一维缩放?
 private void image_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
FrameworkElement element = (FrameworkElement)e.Source;


element.Opacity = 0.5;

Matrix matrix = ((MatrixTransform)element.RenderTransform).Matrix;

var deltaManipulation = e.DeltaManipulation;

Point center = new Point(element.ActualWidth / 2, element.ActualHeight / 2);
center = matrix.Transform(center);


matrix.ScaleAt(deltaManipulation.Scale.X, deltaManipulation.Scale.Y, center.X, center.Y);



matrix.Translate(e.DeltaManipulation.Translation.X, e.DeltaManipulation.Translation.Y);

((MatrixTransform)element.RenderTransform).Matrix = matrix;

}
...全文
376 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
SUNXW71 2015-05-27
  • 打赏
  • 举报
回复
还有为什么deltaManipulation.Scale.X 和 deltaManipulation.Scale.Y的值始终一样呢?搞不懂啊。。

8,734

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧