Windows phone 8 的應用 與一般的Pc應用在輸入方式上最大的不同就是:Windows phone 8主要依靠觸控操作。是以在輸入方式上引入一套全新的觸控操作方式,我們需要重新定義相關的事件和方法。觸控覆寫了Windows phone 8絕大部分使用者的輸入,如何處理輸入呢,微軟從SL和XNA兩個方面提供了多種選擇,并支援多點觸控,下面我們看看具體的實作方式。
1)操作事件
用于觸控操作是一個過程性的,是以通過三個事件ManipulationStarted、ManipulationDelta、ManipulationCompleted來控制觸控的整個過程。他們分别為:
ManipulationStarted: 分别辨別了觸控開始時發生
ManipulationDelta: 觸控過程中位置變更時發生
ManipulationCompleted: 觸控結束時發生
2)讀取手勢
手勢是将觸控輸入資料解釋為一組常用動作(如點按、輕拂和捏合)的進階方式。XNA中為我們封裝了一些常用的基本手勢操作,下表描述了 Windows Phone 中的一些常用筆勢。
點按 手指觸摸螢幕,然後釋放。
連按 手指點按螢幕兩次,然後松開。
長按 手指觸摸螢幕,并保持短暫停留。
拖動 手指觸摸螢幕,并向任何方向移動。
輕拂 手指在螢幕上滑動,且不停止即擡起。
捏合 兩個手指在螢幕上點按,并移動。
在各個事件中,我們可以擷取不同的坐标偏移位置資訊以及縮放大小資訊,這樣我們可以通過程式設計友善的控制,由于API提供的各類偏移縮放名稱太多,為了友善了解,首先,我們通過圖解說明相關的名稱概念。見下圖,我們實作了一個應用,功能是把一個矩形控件通過觸碰操作從虛線所示位置平移到另一位置,黃色軌迹代表拖動的路線:

然後我們看看三個事件,各個事件中分别可以擷取一些什麼資訊,首先,我們要定義一個矩形,然後定義他的CompositeTransform位置縮放轉換。另外我們要定義一個顔色刷,當觸控操作開始時改變矩形的顔色,結束時恢複顔色。我們需要一些準備資訊,然後我們需要在構造方法中初始化作用于矩形的三個觸控事件。建立工程,添加如下代碼:
[XAML]
[C#]
在XNA中,我們可以通過TouchPanel擷取基本手勢資訊,手勢必須被啟用才能夠識别。是以我們要在構造函數中定義要啟用的手勢。
這個時候,我們可以在觸控結束時,判斷目前觸控的手勢類型,另外,在觸控進行的過程中,我們可以實時擷取目前每個觸控點的相關狀态資訊,我們還可以通過TouchPanel識别目前裝置對觸控的支援性。
最後,我啰嗦一下,有些朋友沒有WP8手機,但是這裡卻要用到多點觸控,可是WP8模拟器卻不支援,怎麼辦呢,本人首先想到尋找一個虛拟滑鼠的軟體,但是發現很難實作,其實WIN8模拟器支援多點觸控,我們可以在WIN8模拟器中打開WP8模拟器,這樣就可以利用WIN8模拟器的多點觸控功能了.
版權聲明:本文的版權歸作者與部落格園共有。轉載時須注明原文出處以及作者,并保留原文指向型連結,不得更改原文内容。否則作者将保留追究其法律責任。
《上一篇:沒有了
<a href="http://www.cnblogs.com/lipan/archive/2013/05/29/3106430.html">系列目錄</a>
<a href="http://www.cnblogs.com/lipan/archive/2013/04/27/3047130.html">下一篇:Windows phone 8 學習筆記 資料檔案操作》</a>