|
從上一篇實(shí)例可以發(fā)現(xiàn)在圖片移動(dòng)過程中如果將手指移開屏幕則圖片會(huì)立刻停止,根據(jù)這種情況WPF 提供另外一種慣性效果(Inertia)。通過它可以使UI 單元移動(dòng)的更加符合物理特性、更為實(shí)際和流暢。
在前面代碼的基礎(chǔ)上還需要為<Canvas> 增加ManipulationInertiaStarting 事件。
<Canvas x:Name="touchPad" Background="Gray"
ManipulationStarting="image_ManipulationStarting"
ManipulationDelta="image_ManipulationDelta"
ManipulationCompleted="image_ManipulationCompleted"
ManipulationInertiaStarting="image_ManipulationInertiaStarting">
image_ManipulationInertiaStarting 事件內(nèi)容如下代碼,分別對(duì)TranslationBehavior、ExpansionBehavior、RotationBehavior 進(jìn)行設(shè)置,使其具備慣性特征。
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);
}
程序演示
通過下面視頻可以看到在進(jìn)行Manipulation 時(shí),圖片都已具備慣性效果。
相關(guān)文章
1. WPF Multi-Touch 開發(fā):Windows 7 安裝多點(diǎn)觸屏模擬器
2. WPF Multi-Touch 開發(fā):基礎(chǔ)觸屏操作(Raw Touch)
3. WPF Multi-Touch 開發(fā):高級(jí)觸屏操作(Manipulation)
源碼下載:WpfInertia.zip
NET技術(shù):WPF Multi-Touch 開發(fā):慣性效果(Inertia),轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。