|
在前幾篇文章中已經介紹了觸屏操作的多種模式,并對其開發方式也有了進一步了解。細心的朋友應該會發現在上一篇文章中,如果拖動圖片過快它會因慣性效果飛出程序窗口外,也就是說還需要對其進行邊界限制等相關開發。而且無論是哪種觸屏操作都需要開發者逐行逐句的編寫代碼,本篇將為大家介紹一種高效的多點觸屏開發模式。
其實我們只需利用CodePlex 中的Multi-Touch Manipulation 項目即可,該程序不僅支持WPF,還可以進行Silverlight 和Windows Phone 7 的項目開發。下載并安裝程序,打開Blend 4 新建項目,在設計窗口繪制一個矩形。
在Behaviors 菜單中可以找到FluidMoveBehavior和 TranslateZoomRotateBehavior 兩個選項,并將其拖入Rectangle 中使矩形具有觸屏操作特性。
選擇TranslateZoomRotateBehavior 可以進行相關設置,勾選ConstrainToParentBounds 防止矩形飛出程序外。
在FluidMoveBehavior 中可以設置矩形移動的模式及持續時間等屬性。
相關設置完成后看看生成的代碼,可見XAML 其實也很簡單。
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
x:Class="WpfMT.MainWindow" x:Name="Window" Title="MainWindow"
Width="640" Height="480">
<Grid x:Name="LayoutRoot" Background="#FF7E7878">
<Rectangle Fill="#FF0B3EDA" Margin="239,181,289,179" Stroke="Black">
<i:Interaction.Behaviors>
<ei:TranslateZoomRotateBehavior ConstrainToParentBounds="True"/>
<ei:FluidMoveBehavior Duration="0:0:2">
<ei:FluidMoveBehavior.EaseY>
<BackEase EasingMode="EaseOut"/>
</ei:FluidMoveBehavior.EaseY>
<ei:FluidMoveBehavior.EaseX>
<BackEase EasingMode="EaseOut"/>
</ei:FluidMoveBehavior.EaseX>
</ei:FluidMoveBehavior>
</i:Interaction.Behaviors>
</Rectangle>
</Grid>
</Window>
程序演示
通過以上在Blend 4 中的開發,不要編寫任何代碼就可以使程序實現多點觸屏操作功能。
相關文章
1. WPF Multi-Touch 開發:Windows 7 安裝多點觸屏模擬器
2. WPF Multi-Touch 開發:基礎觸屏操作(Raw Touch)
3. WPF Multi-Touch 開發:高級觸屏操作(Manipulation)
4. WPF Multi-Touch 開發:慣性效果(Inertia)
源碼下載:WpfMT.zip
NET技術:WPF Multi-Touch 開發:高效開發模式,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。