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