在WinCE R3基于Silverlight程序中使用Gesture(手势)_人生几何_新浪博客

IPHONE那种用手指在屏幕上划来划去的操作方式开创了用户体验新时代。这种方式叫做Gesture(手势)。

在WinCE6.0 R3中增添了对5种Gesture的支持,分别为

 

1. Flick,手指朝屏幕的任何方向快速的滑动,并松开;
2. Pan,手指在屏幕上拖动目标,不松手;
3. Tap,点击;
4. Double Tap,双击;
5. Hold,按住屏幕不放(也不移动),相当于点击鼠标右键。

 

PS:据说是由于专利问题,所以现在还不支持多点触摸,就是说不能直接实现两个手指放大缩小那种功能。据说该专利掌握在苹果手里,又据说winCE7.0会支持。。。。。

 

Silverlight for Windows Embedded中也对Gesture进行了支持,可以对UIElement用XRGestureEventArgs结构创建Gesture事件的委托(Delegate,可以理解为事件处理函数指针)。UIElement可以看作是所有可见控件的父类。

一个例子,功能是当flick屏幕时播放动画
C++代码如下:

001  #include "stdafx.h" 
002  #include "pwinuser.h" 
003  #include "xamlruntime.h" 
004  #include "xrdelegate.h" 
005  #include "xrptr.h" 
006  #include "resource.h" 
007 
008  //保存根据xaml 资源创建的可视树根 
009 IXRFrameworkElementPtr root ;
010 
011  //对xaml中的grid面板的手势事件处理 
012  class Grid_GestureEventHandler 
013 
014      public : 
015         HRESULT OnGesture ( IXRDependencyObject * pSender , XRGestureEventArgs * pArgs )
016         { 
017             IXRStoryboardPtr storyboard ;
018              switch (pArgs -> GestureInfo . dwID ) //从XRGestureEventArgs中得到手势的类型 
019             { 
020                  case GID_BEGIN: 
021                      break ;
022                  case GID_END: 
023                      break ;
024                  case GID_PAN: 
025                      break ;
026                  case GID_ROTATE: 
027                    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值