|
從上一篇實例可以發現在圖片移動過程中如果將手指移開屏幕則圖片會立刻停止,根據這種情況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
NET技術:WPF Multi-Touch 開發:慣性效果(Inertia),轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。