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

相关文章

1. WPF Multi-Touch 开发:Windows 7 安装多点触屏模拟器
2. WPF Multi-Touch 开发:基础触屏操作(Raw Touch)
3. WPF Multi-Touch 开发:高级触屏操作(Manipulation)

源码下载

WpfInertia.zip

转载于:https://www.cnblogs.com/gnielee/archive/2010/08/19/multi-touch-inertia.html

WPF Multi-Touch 开发:惯性效果(Inertia)相关推荐

  1. WPF 多点触摸开发[2]:WPF触摸的几个手势的执行顺序

    原文:WPF 多点触摸开发[2]:WPF触摸的几个手势的执行顺序 前面我讲了在win7下使用模拟器,进行调试模拟多点触摸,其实际开发中这样也比较麻烦.. 要拿几个鼠标. 所以更多的人会 买个触摸套 套 ...

  2. wpf控件开发基础(1)

    从现在开始,我将尝试写有关wpf控件开发相关的知识,把文章这对我来说很难,所以这个系列的文章在时间跨度上可能会拖的比较长.我希望我介绍是比较详细的,而不仅仅是一个简单的控件开发流程.我是一个真正的We ...

  3. WPF 4 Ribbon 开发 之 应用程序菜单(Application Menu)

    原文:WPF 4 Ribbon 开发 之 应用程序菜单(Application Menu) 在上一篇中我们完成了快捷工具栏的开发,本篇将讲解应用程序菜单开发的相关内容.如下图所示,点击程序窗口左上角的 ...

  4. Sencha touch 开发指南

    Sencha touch 开发指南 本文主要介绍如何使用Sencha Touch为手持设备进行应用开发,主要是针对iPhone这样的高端手机,我们会通过一个详细的例子来介绍整个开发的流程. Sench ...

  5. WPF控件开发之自定义控件(1)

    Windows Presentation Foundation (WPF) 控件模型的扩展性极大减少了创建新控件的需要.但在某些情况下,仍可能需要创建自定义控件.本主题讨论可最大限度减少在 Windo ...

  6. WPF 4 Ribbon 开发 之 标签工具栏(Tab Toolbar)

    本篇将开始介绍标签工具栏的开发内容,标签工具栏可以说是Ribbon 的核心部分,应用程序所有的功能特性都会集中在这里,一个强大的Ribbon 工具栏也是一款软件成功的关键.在开始前还是先来看看标签工具 ...

  7. WPF框架教程 | 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

    之前时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Caliburn.Micro(https://blog.csdn.net/lzuacm/ar ...

  8. 用WPF轻松打造iTunes CoverFlow效果

    用WPF轻松打造iTunes CoverFlow效果 原文:用WPF轻松打造iTunes CoverFlow效果 用WPF轻松打造iTunes CoverFlow效果                  ...

  9. 从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器

    从0到1:使用Caliburn.Micro(WPF和MVVM)开发简单的计算器 这段时间一直在使用Caliburn.Micro这种应用了MVVM模式的WPF框架做开发,是时候总结一下了. Calibu ...

最新文章

  1. Xamarin.Forms教程下载安装Visual Studio 2015
  2. android studio socket 失败,Android应用开发Android Studio建立Socket连接失败解决方法
  3. JavaScript通过 new FileReader() 获取图片base64 无组件上传图片
  4. 你想象中的实习是什么样的?
  5. 使用monkey命令来打开一个app
  6. swiper图片轮播(左中右) (含源码)- 案例篇
  7. 贝叶斯参数估计的理解及其在电商算法中的应用
  8. 用Node-Inspector调试NodeJs程序
  9. AngularJS日期格式化
  10. 医疗项目 开源_医疗保健受开源影响最大的行业之一
  11. POI设置EXCEL单元格格式为文本、小数、百分比、货币、日期、科学计数法和中文大写...
  12. window.load和$(document).ready()事件
  13. karma看fits文件软件操作汇总【第三个维度的变化】【查看某个范围的RMS值】
  14. 关于Redis启动时报权限不够(-bash: /usr/local/bin/redis-server: Permission denied)
  15. 《穿越计算机的迷雾》读书笔记四
  16. 计算机制图知识点,工程制图的基础知识
  17. 计算机桌面无法解锁,电脑win10系统锁屏后解锁却无法进入桌面的解决方法
  18. Windows server 2012 R2系统怎么安装IIS管理器?
  19. [MdSQL]表的增删查改(进阶)
  20. Linux常用命令之文件搜索命令

热门文章

  1. java sort算法名称_快速排序算法(Quick Sort)(java)
  2. 如何在Python中调用Windows的cmd命令?
  3. 开源的关于智能车竞赛光电起始点方案
  4. 第十五届全国大学生智能车竞赛百度人工智能组相关文件链接
  5. QN8027输出调频分裂的频谱
  6. bs程序在linux下部署,在windows10 Linux (centos7)中安装go golang (够浪) 并测试运行
  7. mysql中堆和栈_堆和栈的区别
  8. windows sftp工具_将SSH服务器映射成Windows网络驱动器
  9. eclipse 右键项目为什么没有properties菜单_只需几步,从零开始搭建SSM项目
  10. win10应用商店打不开_电脑打不开exe程序|Win10提示exe不是有效32应用程序