PDF手势缩放

本文介绍了如何在PDF查看器中实现双指手势缩放功能。由于开启WPF的manipulation事件会导致第三方PDF库失效,作者采取了监听TouchMove事件并自定义手势判断逻辑的方法。当检测到两个以上的触摸点时,根据触摸点间的距离变化来控制PDF的放大或缩小,当距离变化达到一定阈值时计算缩放比例。
摘要由CSDN通过智能技术生成

PDF手势缩放

需求

实现pdf页面双指放大效果

主要问题

原本这个问题可以简单地通过wpf的manipulate相关事件来实现,但是开启此事件的拦截会导致已有的pdf第三方库失效。

实现方案

通过采集更原始的TouchMove事件实现自己的手势判断逻辑。

具体来讲,

​ 两个以上触摸点存在时,任意一个触摸点的远离将导致pdf放大,靠近将导致pdf缩小。

​ 距离的计算为计算最近更新的两个触摸点的距离,当距离变化累计超过一个阈值时计算一次缩放倍率。

实现代码

private void zoom(object sender, TouchEventArgs e) {
            //if (true) return;
            int id = e.TouchDevice.Id;
            pos[id] = e.GetIntermediateTouchPoints(this)[0].Position;
            if (idSeq.Count == 0) {
                idSeq.AddLast(id);
            }else {
                if (id == idSeq.Last()) {

                } else {
                    idSeq.AddLast(id);
                }
                
                while (idSeq.Count > 2) {
                    id
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值