Windows Phone 7 編程實踐 基礎篇—多點觸控樣本(Silverlight)

來源:互聯網
上載者:User
   作品目標:Windows Phone 7 開發的實用手冊
  Windows Phone 7 編程實踐 第一篇 基礎篇
第一章 開啟創新之門
第二章 橫向和縱向視圖
第三章 簡單觸控和多點觸控(多點觸控樣本)
第四章 感應器和服務
第五章 全球化(全球化樣本)
第二篇 Silverlight篇
第一章 應用程式功能表列(應用程式功能表列樣本)
第二章 頁面導航和異常處理
第三章 隔離儲存空間
第四章 推播通知(動態區塊推播通知樣本、雲端運算推播通知)
第五章 Bing 地圖服務控制項
第六章 資料繫結
第七章 動畫和多媒體(影音Hub樣本)
第八章 全景和樞軸(全景Panorama/樞軸Pivot樣本)
第九章 任務(Task)
第十章 墓碑機制實現多任務(多任務樣本)
第十一章 MVVM設計模式的應用
第十二章 XNA的應用
第三篇 XNA篇
第一章 XNA Game Studio遊戲開發基礎架構
第二章 2D遊戲中的觸摸和手勢
第三章 2D遊戲中的訊息發送和墓碑機制
第四章 XNA Game Studio 3D遊戲開發基礎
 參考資料: Programming Windows Phone 7
MSDN Library -- Windows Phone Development
UI Design and Interaction Guide for Windows Phone 7 v2.0
Designing Web Sites for Phone Browsers
Develop for Windows Phone & XBOX 360 Code Sample Windows Phone 7 Application Certification Requirements
 在本書的整理過程中,力求從深度和不同的側面詮釋Windows Phone的開發技術。由於個人能力和水平有待提高,很多問題的分析還很膚淺。敬請各位不吝賜教,提出改進建議。 改變並不是一件壞事情,所有的改變都是為了更好。改變一切的關鍵就是視角。我的目標:用科技改變我所認知的世界。 改版聲明:本系列原名稱為 Programming_Windows_Phone_7 讀書筆記,隨著認知的更新和代碼實踐的增加,想與大家分享的更多的是具體的程式碼範例,因此將整個系列的名稱改為 Windows Phone 7 編程實踐,也將整個系列的重點放在具體可用的樣本上,而非原先僅僅認知就可以了的目標上。同時這個改變也是我個人研究重點正式的改變,近期內所有的研究都圍繞著Windows Phone 7的開發上,這也是我人生曆程中職業生涯的重要改變。 Silverlight的多點觸控
告別簡單的手勢識別,通過對複雜的手勢的反饋帶給操作者的感受無異於駕馭F1馳騁。動手實踐
 下載代碼ManipulationProject
 建立一個Visual C#的Windows Phone工程,工程名稱為ManipulationProject。

將下面的XAML代碼加入到MainPage.xaml中。
 這段代碼的作用是在畫布上建立了一個藍色的的矩形。應用程式訂閱了ManipulationDelta事件,對於該事件的響應代碼中包含的移動矩形的控制邏輯。

 <Canvas>
<Rectangle
Name="rectangle"
Width="200" Height="200"
Fill="Blue" Stroke="Blue" StrokeThickness="1" />
</Canvas>    
 在MainPage類中, 添加如下的變數。
 private TransformGroup transformGroup;private TranslateTransform translation;private ScaleTransform scale; 在MainPage.xaml中添加ManipulationDelta事件處理常式Canvas_ManipulationDelta

 在MainPage.xaml中點擊右鍵,選擇"Properties"。 在"Event"中設定ManipulationDelta的響應事件Canvas_ManipulationDelta。
 
 設定完畢後,我們會在MainPage類中看見下面的代碼被自動添加: private
void Canvas_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
 }
添加下面的代碼到MainPage的建構函式中
 this.transformGroup = new
TransformGroup();
this.translation = new
TranslateTransform();
this.scale = new
ScaleTransform();
 this.transformGroup.Children.Add(this.scale);
this.transformGroup.Children.Add(this.translation);
this.rectangle.RenderTransform = this.transformGroup;
 在MainPage類,ManipulationDelta事件處理常式Canvas_ManipulationDelta中添加以下代碼。在手指操作期間ManipulationDelta事件發生時觸摸輸入已變更位元置可能發生多次。例如,如果使用者手指拖動螢幕,ManipulationDelta事件發生多次作為手指移動。private
void Canvas_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{

// Scale the rectangle.

if ((e.DeltaManipulation.Scale.X == 0) || (e.DeltaManipulation.Scale.Y == 0))
{

// Increase ScaleX and ScaleY by 5%.

this.scale.ScaleX *= 1.05;

this.scale.ScaleY *= 1.05;
}

else
{

this.scale.ScaleX *= e.DeltaManipulation.Scale.X;

this.scale.ScaleY *= e.DeltaManipulation.Scale.Y;
}
 
// Move the rectangle.

this.translation.X += e.DeltaManipulation.Translation.X;

this.translation.Y += e.DeltaManipulation.Translation.Y;
  }
 編譯並運行程式
 螢幕上藍色的矩形等著您的觸摸。測試應用程式
試一試複雜的手勢變化,嘗試Windows Phone的互動體驗。
  • 移動矩形,你的手指放在該矩形,並在螢幕上移動手指。
  • 若要調整大小的矩形,把兩個手指放在矩形上縮小和延伸(Pinch and Stretch),如。
 
 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.