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

从上一篇实例可以发现在图片移动过程中如果将手指移开屏幕则图片会立刻停止,根据这种情况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

时间: 2024-08-17 21:54:48

WPF Multi-Touch 开发:惯性效果(Inertia)的相关文章

一起谈.NET技术,WPF Multi-Touch 开发:惯性效果(Inertia)

从上一篇实例可以发现在图片移动过程中如果将手指移开屏幕则图片会立刻停止,根据这种情况WPF 提供另外一种惯性效果(Inertia).通过它可以使UI 单元移动的更加符合物理特性.更为实际和流畅. 在前面代码的基础上还需要为<Canvas> 增加ManipulationInertiaStarting 事件. <Canvas x:Name="touchPad" Background="Gray" ManipulationStarting="i

工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧

原文:工欲善其事,必先利其器 之 WPF篇: 随着开发轨迹来看高效WPF开发的工具和技巧 之前一篇<工欲善其事,必先利其器.VS2013全攻略(安装,技巧,快捷键,插件)!> 看到很多朋友回复和支持,非常感谢,尤其是一些拍砖的喷油,感谢你们的批评,受益良多. 我第一份工作便是WPF的开发,一直到现在都非常喜欢这门技术,从懵懵懂懂到现在有一些WPF开发资历,也算是经历了一段坎坷的过程.我的朋友看到我写了VS2013的全攻略,他就推荐我写一个WPF篇,我想了下,的确很多朋友初接触WPF的时候难免会

wpf-vs2012 WPF 和AE开发系统,怎么实现点选查询。初学者求帮助

问题描述 vs2012 WPF 和AE开发系统,怎么实现点选查询.初学者求帮助 用wpf和AE开发系统怎么实现点选查询,就是点一个位置弹出属性表就可以.本人初学者,求各位大侠帮助.

Firefox如何使用Multi Touch多点触控

  苹果电脑上,Safari浏览器可以通过Multi Touch多点触控触摸板实现很多功能(比如翻页.后退等),毕竟Safari是苹果"亲生"的.能否在Firefox里使用Multi Touch多点触控呢?新版Firefox能!下载地址和Firefox里使用多点触控的"指法"如下 在Firefox里使用多点触控,首先要升级到Firefox 3.1 Beta 2以上 然后说说在Firefox里使用多点触控的"指法": 双指张开:放大页面; 双指合拢

wpf 故事板 动画-wpf 图片横移动画效果

问题描述 wpf 图片横移动画效果 做了一个wpf的多个图片横向移动的动画效果,用的故事板 但是想实现每一个图片能在出现到中间的时候,进行一下停顿,设置了begintime 但是导致动画出现了切换图片的效果 失去了动画横移效果 求解答

怎么使用WPF+Silverlight做出像falsh效果?

问题描述 怎么使用WPF+Silverlight做出像falsh效果? 解决方案 解决方案二:这个问题太广了,你应该研究下WPF相关的动画类..

请问 在wpf里面怎么实现粒子效果呀???

问题描述 请问在wpf里面怎么实现粒子效果呀???实在是一点思路都没有-- 解决方案 解决方案二:粒子效果演示示例:https://msdn.microsoft.com/zh-cn/library/vstudio/ms771772%28v=vs.90%29.aspx

用qt SDK 构建meego touch 开发环境

说明: 也许有不少朋友会问到,网上有不少构建meego touch环境的文章了,你又何必多此一举呢?细心的朋友可能会发现,我这里不用编译QT4.7 而是用QT4.7的SDK来搭建环境的.编译QT4.7一般都需要大概一下午的时间,而是用SDK则最多不超过20分钟就搞定了.这也是希望能有更快的方法让大家来玩meego. 下载 qt-sdk-linux-x86-opensource-2010.05-rc1.bin: 安装 qt-sdk-linux-x86-opensource-2010.05-rc1.

一起谈.NET技术,WPF Multi-Touch 开发:高效开发模式

在前几篇文章中已经介绍了触屏操作的多种模式,并对其开发方式也有了进一步了解.细心的朋友应该会发现在上一篇文章中,如果拖动图片过快它会因惯性效果飞出程序窗口外,也就是说还需要对其进行边界限制等相关开发.而且无论是哪种触屏操作都需要开发者逐行逐句的编写代码,本篇将为大家介绍一种高效的多点触屏开发模式. 其实我们只需利用CodePlex 中的Multi-Touch Manipulation 项目即可,该程序不仅支持WPF,还可以进行Silverlight 和Windows Phone 7 的项目开发.