众所周知(当然是对WP7喜爱的人),WP 7 支持多点触摸功能,那么我们怎么来实现触摸功能呢?
实现多点WP7的基本触摸并不是非常困难,主要需要对如下几个事件进行监听
ManipulationStarted, ManipulationDelta 和 ManipulationCompleted,这几个事件可以分别对触点开始触摸,移动,停止,做出相应的操作,但是对于一个刚刚接触开发的人,对这几个事件的处理可能还是有一定困难的,因此我在这里向大家推荐网上的一个开源项目Silverlight 4, WPF 4 and Windows Phone 7 Multi-Touch Manipulation,该项目可以到http://multitouch.codeplex.com/ 处下载。
从该网站下载后可以得到一个名为MultiTouchBehaviors.Setup.msi的安装包,安装后打开安装目录,可以得到看到一些动态库,其中最主要的就是WP7 目录下的MultiTouch.Behaviors.WP7.dll / System.Windows.Interactivity.dll,接下来的实例我们也会用到这两个库。具体怎么用呢?
首先新建一个基于SliverLight的WP7应用程序,这个没什么可说的,取名MultiTouch。
添加上述两个动态库的引用,如图:
接下来在程序的主页面MainPage.xaml添加两个命名空间的引用:
xmlns:wi="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
在程序中增加一个图片,并在图片标签中添加其行为代码如下:
属性名称
|
作用
|
AreFingersVisible
|
是否在点击时在点击的处出现圆圈 ,调试模式下可用
|
IsDebugModeActive
|
是否可以显示调试信息,调试模式下可用,默认为false
|
IsMockActive
|
是否可以在点击时固定一点,模拟两点触摸,调试模式下可用,默认为false
|
IsRotateEnabled
|
是否可以旋转,默认为true
|
IsScaleEnabled
|
是否可以拉伸, 默认为true
|
IsTranslateXEnabled
|
横向是否可以变化,默认为true
|
IsTranslateYEnabled
|
纵向是否可以变化,默认为true
|
MaximumScale
|
最大放大率,默认为100.0
|
MinimumScale
|
最小缩小率,默认为0.5
|
此时运行程序点击图片可以进行任意的拖拽,可看到如下效果:
同时也可以双击固定其中一点,实现模拟两点触摸的旋转拉伸,如图: