WPF Multi-Touch 開發:高效開發模式
在前幾篇文章中已經介紹了觸屏操作的多種模式,并對其開發方式也有了進一步了解。細心的朋友應該會發現在上一篇文章中,如果拖動圖片過快它會因慣性效果飛出程序窗口外,也就是說還需要對其進行邊界限制等相關開發。而且無論是哪種觸屏操作都需要開發者逐行逐句的編寫代碼,本篇將為大家介紹一種高效的多點觸屏開發模式。
其實我們只需利用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)