最近项目太忙.好久都没更新Blog了. 本人除了参与公司项目开发, 还负责更新下公司技术blog,主要是为了分享技术
让更多人了解新技术
最近在开发 PixelSense 52点触控上的应用. 随着surface平板的推出 原先的大桌子已经更名为PixelSense
由于价格昂贵.注定PixelSense 在普及上 只适合于企业和某些机构. 使用surface Sdk 开发的人员也少。注定资料也就少了。只有少数稀缺的英文资料
请注意 我们讲的是surface sdk 是基于PixelSense中的 surface shell 而非目前火热的surface平板.win8应用下的开发
对于不太了解PixelSense的朋友可以查阅下相关资料
下面有2个视频 可以了解到 PixelSense技术的强大,
http://www.wpxap.com/thread-198542-1-1.html
http://v.youku.com/v_show/id_XNDU0MTIyMjY4.html
刚接触的时候也是异常震撼 微软技术的强大 .
其中还2个相关视频 是对康宁玻璃对未来的构想广告
http://v.youku.com/v_show/id_XNDA3MjY3MjAw.html
http://v.youku.com/v_show/id_XNDA3MjY2MTM2.html
这些都是以后多点触控的趋势,个人觉得目前软件完全可以做出以上效果,只是硬件上不能满足 尤其是硬件的透明感觉
让其空间化.
首先我们先进入正题.
说到多点触摸,很容易联想到这几个想过 惯性的滑动,手势旋转, 手上拖拉发大缩小
学习过WPF的人可能知道 也了解到 利用MannioulationStarting ManipulationDeltla ManipulationIneretiaStaring 完成相应操作
网上很多博客资料 都这些手势操作 都做了详细介绍 并提供了相关案例. 这样对图片就能实现多点的操作
但是你会发现 你自己的写的 那种简单的算法 和赋值惯性 操作上不是那么柔和 而且交互性体验性都 不怎么样,很生硬
如果你不赞同上面观点 请使用本次的教程的主题 ScatterView 控件,
新建一个surface项目
直接在grid下面 写上
<Grid Height="1080" Width="1920" x:Name="grid" Background="White"> <s:ScatterView> <Rectangle Width="100" Height="100" Fill="Red"/> <Rectangle Width="100" Height="100" Fill="Red"/> <Rectangle Width="100" Height="100" Fill="Red"/> </s:ScatterView> </Grid>
运行项目 你会发现多点的操作比你自己写的柔和很
多 更具弹性, 交互性体验性 都强大数倍
这里并不是说自己写的不好,自己写 更能了解背后的原理,其实这组控件里 同样是用到了
MannioulationStarting ManipulationDeltla ManipulationIneretiaStaring 几个事件
只是微软已经封装进去了, 只是微软写的算法更为精良 更为柔和.
对于线性 加速 惯性非常了解的高手也是可以自己写出来.
运行项目你会我们可以看到
操作下 你会发现他的交互性强度,更重要的是 它为开发节省了时间
用双手拖拉,你会发现 红色的方块不能 拉大
我们要稍微修改
<Grid Height="1080" Width="1920" x:Name="grid" Background="White"> <s:ScatterView> <Viewbox> <Rectangle Width="100" Height="100" Fill="Red"/> </Viewbox> <Viewbox> <Rectangle Width="100" Height="100" Fill="Red"/> </Viewbox> <Viewbox> <Rectangle Width="100" Height="100" Fill="Red"/> </Viewbox> </s:ScatterView> </Grid>
这样的话一个对类型多点触控操作的 功能就完全完成了, 比原先首先手写的效率高很多
是不是很简单. 呵呵. 下一章我们将深入 讲解ScatterView.
作者:-夜中心寒. 邮箱353369837@qq.com
属于:-殊胜科技 官网:http://www.utionsoft.net