Silverlight 3 支持多点触控,想要测试这个功能,当然必须有支持触控的硬件设备,基础平台比如Windows 7等的支持也是必不可少的。然而即便所有条件必备,Silverlight 3 目前对触控的支持还相对有限,比如不支持笔势(Gestures)。尽管理论可以用(TouchAction)的Down、Move、Up来模拟笔势,但目前得到的效果非常有限,且不尽入人意。这个功能多少有些鸡肋的感觉。

哪怕借助Google了好多页,找到的资料乏善可陈,列举如下:
官方文档“多点触控输入”:可以查看概况和相关API详情。Timheuer“Silverlight 3 Multi-touch: The Basics”:简单讲解,有示例Demo,可以看看基本的代码运用。
“Silverlight 3 and WPF Multi-Touch”:codeplex上开源的库,主页上有示例和使用说明,功能局限,只有缩放和拖曳笔势的模拟。澳大利亚的soulsolutions做了一个基于Bing Maps的应用,基于刚才的类库做了两点扩充,但是体验仍还是比较不友好。
“MIRIA SDK”是codeplex上另外一个开源库,针对Silverlight 3做了一些笔势的增强,支持以下笔势。相对而言,用起来更加方便一些。但也有两个问题,第一,笔势之间冲突,比如Rotate和Scale经常同时触发;第二:尽管宣称不影响鼠标事件提升,但仅限于它这个SDK中。用MIRIA SDK监听后无法删除事件的订阅,导致外部原有的鼠标事件无法得到相应的提升。
- Hold (hold a finger down for a little)
- Tap (quickly put on and lift up a finger)
- Translate (move your fingers)
- Rotate (rotate gesture with two fingers)
- Scale (pinch in/out the screen with two fingers)
- Slide North/East/South/West/Nw/Ne/Sw/Se (slide two fingers in the desired direction)
综上所述,Silverlight 3的多点触控最好就是直接利用鼠标提升的特性,也就是一个指头模拟鼠标点来点去,原来用鼠标可以进行的多种多样的工作,现在用指头触摸来完成。多点触控,看起来不错的也就是用两个指头(两点)pinch in/out进行缩放。