轉載:Windows 8風格應用35-觸控輸入

來源:互聯網
上載者:User

標籤:

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-觸控輸入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.