点击这里给我发消息 点击这里给我发消息

WPF Multi-Touch 开发:惯性效果(Inertia)

添加时间:2010-12-23
    相关阅读: 开发 程序

从上一篇实例可以发现在图片移动过程中如果将手指移开屏幕则图片会立刻停止,根据这种情况WPF 提供另外一种惯性效果(Inertia)。通过它可以使UI 单元移动的更加符合物理特性、更为实际和流畅。

  在前面代码的基础上还需要为<Canvas> 增加ManipulationInertiaStarting 事件。

<Canvas x:Name="touchPad" Background="Gray"         
    ManipulationStarting="image_ManipulationStarting"  
    ManipulationDelta="image_ManipulationDelta" 
    ManipulationCompleted="image_ManipulationCompleted" 
    ManipulationInertiaStarting="image_ManipulationInertiaStarting"> 

  image_ManipulationInertiaStarting 事件内容如下代码,分别对TranslationBehavior、ExpansionBehavior、RotationBehavior 进行设置,使其具备惯性特征。

private void image_ManipulationInertiaStarting(object sender, 
  ManipulationInertiaStartingEventArgs e) 
{ 
  e.TranslationBehavior = new InertiaTranslationBehavior(); 
  e.TranslationBehavior.InitialVelocity = e.InitialVelocities.LinearVelocity; 
  e.TranslationBehavior.DesiredDeceleration = 10.0 * 96.0 / (1000.0 * 1000.0); 
   
  e.ExpansionBehavior = new InertiaExpansionBehavior(); 
  e.ExpansionBehavior.InitialVelocity = e.InitialVelocities.ExpansionVelocity; 
  e.ExpansionBehavior.DesiredDeceleration = 0.1 * 96 / 1000.0 * 1000.0; 
   
  e.RotationBehavior = new InertiaRotationBehavior(); 
  e.RotationBehavior.InitialVelocity = e.InitialVelocities.AngularVelocity; 
  e.RotationBehavior.DesiredDeceleration = 720 / (1000.0 * 1000.0); 
}

  程序演示

  通过下面视频可以看到在进行Manipulation 时,图片都已具备惯性效果。

  视频地址:http://static.youku.com/v1.0.0122/v/swf/qplayer.swf?VideoIDS=XMTk4MjUyNDAw&embedid=MTI1LjY5LjE0NC4zNgI0OTU2MzEwMAJ3d3cuY25ibG9ncy5jb20CL2duaWVsZWUvYXJjaGl2ZS8yMDEwLzA4LzE5L211bHRpLXRvdWNoLWluZXJ0aWEuaHRtbA==&showAd=0

  源码下载地址:http://public.blu.livefilestore.com/y1pA8pt32bGc_1znfRppqLoDSS7hKRAougUyNOv2NOkG_N-EA4vzYytWkokn5XC7E3abor2YYWWR1CbUTOgq3mpgg/WpfInertia.zip?download&psid=1

本文作者:未知
咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册