|
在前幾篇文章中已經(jīng)介紹了觸屏操作的多種模式,并對(duì)其開(kāi)發(fā)方式也有了進(jìn)一步了解。細(xì)心的朋友應(yīng)該會(huì)發(fā)現(xiàn)在上一篇文章中,如果拖動(dòng)圖片過(guò)快它會(huì)因慣性效果飛出程序窗口外,也就是說(shuō)還需要對(duì)其進(jìn)行邊界限制等相關(guān)開(kāi)發(fā)。而且無(wú)論是哪種觸屏操作都需要開(kāi)發(fā)者逐行逐句的編寫(xiě)代碼,本篇將為大家介紹一種高效的多點(diǎn)觸屏開(kāi)發(fā)模式。
其實(shí)我們只需利用CodePlex 中的Multi-Touch Manipulation 項(xiàng)目即可,該程序不僅支持WPF,還可以進(jìn)行Silverlight 和Windows Phone 7 的項(xiàng)目開(kāi)發(fā)。下載并安裝程序,打開(kāi)Blend 4 新建項(xiàng)目,在設(shè)計(jì)窗口繪制一個(gè)矩形。
在Behaviors 菜單中可以找到FluidMoveBehavior和 TranslateZoomRotateBehavior 兩個(gè)選項(xiàng),并將其拖入Rectangle 中使矩形具有觸屏操作特性。
選擇TranslateZoomRotateBehavior 可以進(jìn)行相關(guān)設(shè)置,勾選ConstrainToParentBounds 防止矩形飛出程序外。
在FluidMoveBehavior 中可以設(shè)置矩形移動(dòng)的模式及持續(xù)時(shí)間等屬性。
相關(guān)設(shè)置完成后看看生成的代碼,可見(jiàn)XAML 其實(shí)也很簡(jiǎn)單。
<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>
程序演示
通過(guò)以上在Blend 4 中的開(kāi)發(fā),不要編寫(xiě)任何代碼就可以使程序?qū)崿F(xiàn)多點(diǎn)觸屏操作功能。
相關(guān)文章
1. WPF Multi-Touch 開(kāi)發(fā):Windows 7 安裝多點(diǎn)觸屏模擬器
2. WPF Multi-Touch 開(kāi)發(fā):基礎(chǔ)觸屏操作(Raw Touch)
3. WPF Multi-Touch 開(kāi)發(fā):高級(jí)觸屏操作(Manipulation)
4. WPF Multi-Touch 開(kāi)發(fā):慣性效果(Inertia)
源碼下載:WpfMT.zip
NET技術(shù):WPF Multi-Touch 開(kāi)發(fā):高效開(kāi)發(fā)模式,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。