標籤:
Windows 8風格應用35-觸控輸入
時間:2013-02-21 22:36
來源:部落格園
作者:王祖康
點擊:270次引用 Windows 8裝置通常具有多點觸控螢幕,使用者可以同時使用多個手指來進行不同的輸入互動,如點擊、拖動或收縮等手勢操作。另外Windows 8中將觸摸、滑鼠和筆/觸筆互動是作為指標輸入進行接收、處理和管理。 一、手勢處理 首先我們來匯總一下Windows 8中常用的手勢都有哪些。 1,點擊:用一個手指觸控螢幕幕,然後抬起手指。 2
引用
Windows 8裝置通常具有多點觸控螢幕,使用者可以同時使用多個手指來進行不同的輸入互動,如點擊、拖動或收縮等手勢操作。另外Windows 8中將觸摸、滑鼠和筆/觸筆互動是作為指標輸入進行接收、處理和管理。
一、手勢處理
首先我們來匯總一下Windows 8中常用的手勢都有哪些。
1,點擊:用一個手指觸控螢幕幕,然後抬起手指。
2,長按:用一個手指觸控螢幕幕並保持不動。
3,滑動:用一個或多個手指觸控螢幕幕並向著同一方向移動。
4,輕掃:用一個或多個手指觸控螢幕幕並向著同一方向移動較短距離。
5,收縮:用兩個或多個手指觸控螢幕幕,然後將手指併攏在一起或分開。
6,旋轉:用兩個或多個手指觸控螢幕幕並沿著順時針或逆時針的弧線移動。
7,展開:用兩個或多個手指觸控螢幕幕,然後將手指分開。
我們如何處理Windows 8中手勢呢?
先來看一下Windows 8手勢API:
這些手勢都是以Manipulation API為基礎進行處理的,其中Hold和Tap手勢是基於Manipulation進行了封裝,那麼其他手勢都是使用Manipulation API進行處理的。
以下是在Manipulation API幾個常用事件:
ManipulationStarting:在首次建立操作處理器時觸發。
ManipulationStarted:當輸入裝置對 UIElement 對象開始操作時觸發。
ManipulationDelta:當輸入裝置在操作期間已變更位元置時觸發。
ManipulationCompleted:對於 UIElement 對象的操作和延時完畢時觸發。
ManipulationInertiaStarting:當輸入裝置在操作期間與 UIElement 對象失去聯絡且延時開始時觸發。
點選手勢(雙擊、單擊、右擊):
這裡以單擊為例(雙擊、右擊處理方式雷同):
通常我們可以實現通過點擊事件可以處理跳轉某一頁面等操作,並且在“OpeningMessage_Tapped”中處理代碼商務邏輯。
按下並保持手勢:
通常我們可以按下應用中某一項並保持,瀏覽關於該項的更多資訊,類似於WindowsPhone中長按某一條簡訊,可以選擇複製,轉寄,刪除等操作。
滑行拖動手勢:
通常我們可以通過滑行拖動手勢進行拖動圖片,由於未提供滑行拖動手勢操作的API,只能通過處理ManipulationDelta事件進行實現效果。
縮放手勢:
我們可以通過該手勢進行縮放圖片,由於未提供縮放手勢操作的API,只能通過處理ManipulationDelta事件進行實現效果。
旋轉手勢:
我們可以通過旋轉手勢進行旋轉圖片,其實邏輯比較簡單,只需要處理當前圖片角度+(圖片角度*180/PI值),然後重新賦值就行了。
二、指標處理
以前應用中處理對滑鼠,觸控和手寫筆的響應,需要多個不同的事件處理常式,很容易造成代碼品質低劣,易於產生複製粘貼錯誤。微軟通過分析不同裝置和形式之間的一些共同點,最後將指標輸入的方法整合到一個一致的API中。使用指標事件為滑鼠,觸控和手寫筆創造了一致,簡單的體驗。
以下是指標事件處理常用的事件:
(以在圖片上進行畫圖為例)
1,PointerPressed:手指,滑鼠或手寫筆點擊螢幕時發生。
當指標按下時候記錄收集當前指標。
2,PointerMoved:手指,滑鼠或手寫筆在螢幕上拖動時發生。
可以通過觸發PointerMoved事件,將前一個點擊位置和當前點擊位置繪製成一條線。
3,PointerReleased:手指,滑鼠或手寫筆抬起時發生。
可以通過觸發PointerReleased事件,將點擊位置從集合中移除。
4,PointerExited:手指,滑鼠或手寫筆離開時發生。
可以通過觸發PointerExited事件,將點擊位置從集合中移除。
轉載:Windows 8風格應用35-觸控輸入