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 时,图片都已具备惯性效果。

 

相关文章

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

 

源码下载

WpfInertia.zip





本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2010/08/19/multi-touch-inertia.html,如需转载请自行联系原作者

相关文章
|
9月前
|
数据库连接 API C#
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(二)(下)
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(二)(下)
153 0
|
5月前
|
程序员 C# 异构计算
一个为程序员定制的、WPF开发的小巧、美观桌面快捷工具
一个为程序员定制的、WPF开发的小巧、美观桌面快捷工具
57 0
|
5月前
|
C# 开发者
一款WPF开发的网易云音乐客户端 - DMSkin-CloudMusic
一款WPF开发的网易云音乐客户端 - DMSkin-CloudMusic
125 36
|
9月前
|
设计模式 前端开发 测试技术
WPF开发之Prism详解【内附源码】
WPF开发之Prism详解【内附源码】
217 0
|
9月前
|
C#
WPF工控组态软件之冷却塔和空气压缩机开发
WPF工控组态软件之冷却塔和空气压缩机开发
173 0
|
9月前
|
C#
WPF工控组态软件之管道和冷却风扇开发
WPF工控组态软件之管道和冷却风扇开发
161 0
|
9月前
|
C# 数据库 C++
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(完)(下)
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(完)(下)
291 0
|
9月前
|
前端开发 C# UED
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(完)(上)
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(完)(上)
180 0
|
9月前
|
C# 数据库
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(四)(下)
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(四)(下)
88 0
|
9月前
|
前端开发 C# 数据库
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(三)(下)
WPF开发学生信息管理系统【WPF+Prism+MAH+WebApi】(三)(下)
168 0