Ink-Canvas
Ink-Canvas copied to clipboard
综合性的触摸优化问题和解决方案
本议题主要关注影响 Ink Canvas 触摸使用体验的重大问题,并且给出相应的可能解决方案。
主要问题
- 缩放/旋转太灵敏,会在写字/移动时被触发。
- 使用「手掌橡皮」时,橡皮大小会不断改变,并且会触发移动/缩放/旋转。
可能的对应解决方案
- 对于写字时的触发,可以考虑类似希沃的落笔一段时间之后转为多指书写的模式,暂未想到实现;
对于移动时的触发,可以设定全局的
manipulateMatrix
(Matrix
)、doZoom
(bool
)、doRotate
(bool
)。当接收到ManipulationDelta
时将manipulateMatrix
Multiply
以当前Manipulation
操作的m
Matrix
。如果缩放/旋转量超过一定阈值,则设置doZoom
/doRotate
为 true,并归零manipulateMatrix
,根据doZoom
/doRotate
的真假进行缩放。当结束操作时(ManipulationInertiaStarting
),重设manipulateMatrix
、doZoom
和doRotate
。 - 当第一次触发
Main_Grid_TouchDown
并且符合手掌橡皮的大小时,用全局变量记录橡皮大小以及此时时间。此后如果再触发任何TouchDown
事件并且距离上次触发未经过 500 毫秒(类似 #109),则沿用上次大小;如果再触发任何ManipulationDelta
事件并且距离上次触发未经过 500 毫秒,则不处理移动/缩放/旋转。