遲來的一篇博文,每次都要撞到月末,這個月實在太忙了,除了在公司上班,還接了個單子,用wpf做一個觸屏軟件,類似iphone的相冊功能。先說搭建開發環境吧,我是不可能去買個平板來的,再說基於win7的程序能不能跑在平板上面還不一定,這是我首要解決的問題,使用第三方工具搭建觸屏開發測試環境。有人說2012已經自帶觸屏程序的開發環境了,目前我還是用的vs2010,具體搭建方法可以參考:
http://www.cnblogs.com/gnielee/archive/2010/08/16/multi-touch-simulator.html
一般按照這樣的步驟安裝就可以用了,但有時候會不起作用,所有的步驟都操作了,紅點出來了,鼠標也隱藏了,點屏幕卻沒有任何反應,而且在畫圖里畫可以看到不管紅點移到何處,始終在畫板上的一個地方畫。具體解決辦法在我后面的博文里有介紹,這里給個電梯吧:WPF觸控程序開發(四)——MultiTouchVista_-_second_release_-_refresh_2的救贖
環境搭建好了,接下來就可以開始開發了,一些基本的事件編寫可以參考:
http://msdn.microsoft.com/zh-cn/magazine/ff898416.aspx 這是4年前的文章了,我看到的時候還在驚訝,4年前的技術,我到現在才開始接觸...里面幾個例子還是很不錯的,值得學習。不過我們自己寫的話,可以着重在ManipulationDelta事件里處理觸屏變化,而不用重寫。
另外介紹一個博主的博客,也介紹了觸屏開發的一些經驗:http://www.cnblogs.com/gnielee/archive/2010/08/17/multi-touch-raw-touch.html
關於點擊判斷手指有沒有移動,可以在touchdown的時候記錄device的觸碰點,等touchup的時候獲取新的點,對比兩者是否有位移就行。
另外,wpf里的scrollviewer已經支持觸屏移動了,不用寫一行代碼,具體可以參考:http://blogs.msdn.com/b/linanw/archive/2010/05/02/windows-1-wpf-4.aspx
還有是用blend的行為來控制滑動,也不用寫一行代碼,不過控制得不夠靈活,可以說沒法控制,大家也可以參考下:http://www.pin5i.com/showtopic-wpf-multi-touch-development-efficient-development-patterns.html
這些資料只要你去搜就可以搜到,不過真正看到肚子里的才是自己的,要想做到iphone相冊那樣的效果還是要花點心思的,研究中...