Windows Phone 7程式設計

Windows Phone 7程式設計

《WindowsPhone7程式設計》是2012年人民郵電出版社出版的圖書,作者是CharlesPetzold。

基本信息

ISBN:9787115269232

上架時間:2011-12-14

出版日期:2012 年1月

開本:16開

頁碼:1

版次:1-1

所屬分類: 計算機

內容簡介

《windows phone 7程式設計》共分為兩個部分。第一部分通過一些示例程式介紹了windows phone 7 編程的基本概念,包括windows phone 7 的安裝環境、系統需求、silverlight、xna、方向處理、觸摸、點陣圖、感測器和服務以及套用框架問題。第二部分主要介紹silverlight,包括xaml 的威力和限制、元素和屬性、布局、控制項、依賴屬性、數據綁定、矢量圖形、柵格圖形、動畫和模板等內容。

《windows phone 7程式設計》適合具備一定基礎,並且對windows phone 7 程式設計感興趣的人閱讀。

作譯者

Charles Petzold

Windows編程大師、世界頂級技術作家、微軟資深MVP,擁有25年的Windows編程經驗。1994年5月,Petzold作為唯一的作家,獲得 由微軟公司和Window Magazine授予的Windows 先鋒獎(僅7人獲獎),其講授Windows開發的非凡成就得到了公認。直到今天,他依然是Windows GDI 程式設計首席技術作家。

他出版過十幾本著作,其中,《Windows程式設計》是盡人皆知的Win32 API編程經典,《編碼》、《圖靈的秘密》等作品也深受好評。

林永堅

微軟Windows Phone MVP、MSDN Webcast講師。

目錄

《windows phone 7程式設計》

第一部分 基礎知識

第1 章 hello,windows phone 7  2

1.1 windows phone 7 目標平台 2

1.2 硬體規格 4

1.3 感應器和服務 6

1.4 檔案新建項目 6

1.5 第一個silverlight 手機程式 7

1.6 標準silverlight 檔案 9

1.7 主題顏色 15

1.8 點和像素 16

1.9 xap 就是zip  18

1.10 windows phone 的xna 程式 18

第2 章 方向處理 25

2.1 silverlight 與動態布局 25

2.2 方向事件 31

2.3 xna 方向 32

2.4 簡易時鐘 35

第3 章 觸摸簡介 40

3.1 xna 的底層觸摸處理 40

.3.2 xna 手勢接口 43

3.3 silverlight 底層觸摸事件 45

3.4 manipulation 事件 48

3.5 路由事件 51

3.6 怪異的行為 53

第4 章 點陣圖 54

4.1 xna 紋理繪圖 55

4.2 silverlight 中的image 元素 57

4.3 通過web 獲取的圖像 58

4.4 image 和imagesource 60

4.5 利用代碼載入本地點陣圖 62

4.6 從相機捕獲 63

4.7 手機圖片庫 66

第5 章 感測器與服務 70

5.1 加速計 70

5.2 簡單的氣泡水平儀 75

5.3 地理位置(服務)  80

5.4 使用地圖服務 83

第6 章 應用程式架構 90

6.1 基本導航 90

6.2 頁面間傳遞數據 96

6.3 頁面間數據共享 98

6.4 保留多個實例的數據 103

6.5 多任務之夢 105

6.6 windows phone 的任務切換 105

6.7 頁面狀態 107

6.8 獨立存儲 110

6.9 xna 的墓碑化和設定 114

6.10 測試和實驗 119

第二部 分 silverlight

第7 章 xaml 的威力和局限 122

7.1 代碼中的textblock 123

7.2 屬性繼承 125

7.3 屬性元素語法 126

7.4 顏色和畫刷 127

7.5 內容和內容屬性 133

7.6 資源集合 136

7.7 共享畫刷 137

7.8 x:key 和x:name 140

7.9 樣式簡介 141

7.10 樣式繼承 142

7.11 主題 143

7.12 漸變強調 144

第8 章 元素與屬性 146

8.1 基本形狀 146

8.2 變換 148

8.3 類視頻動畫 155

8.4 處理manipulation 事件 156

8.5 border 元素 158

8.6 textblock 的屬性和內聯 161

8.7 深入解析image 164

8.8 播放視頻 166

8.9 opacity 模式 167

8.10 非平鋪tile 畫刷 169

第9 章 布局的複雜性 170

9.1 唯一單元格grid 171

9.2 stackpanel 棧 173

9.3 stackpanel 中的文本串聯 176

9.4 嵌套面板類 178

9.5 visibility 與布局 180

9.6 兩個scrollviewer 應用程式 181

9.7 布局機制 187

9.8 深入理解面板類 189

9.9 複製只包含一個單元格的grid  190

9.10 自定義垂直的stackpanel  193

9.11 復古的canvas  195

9.12 canvas 與zindex 200

9.13 canvas 和觸摸處理 201

9.14 強大的grid 202

第10 章 app bar 和控制項 205

10.1 applicationbar 圖示 205

10.2 jot 和application 設定 212

10.3 jot 和touch 216

10.4 jot 和applicationbar 218

10.5 elements 和controls 223

10.6 rangebase 和slider  225

10.7 基礎button 230

10.8 content 概念  233

10.9 主題樣式和優先權  237

10.10 button 層次結構  238

10.11 切換運行的秒表  240

10.12 按鈕和樣式  249

10.13 textbox 和鍵盤輸入  251

第11 章 依賴屬性  259

11.1 問題說明  259

11.2 依賴屬性的特別之處  262

11.3 繼承usercontrol 271

11.4 新型開關按鈕 280

11.5 帶屬性的面板 285

11.6 附加屬性 290

第12 章 數據綁定  295

12.1 綁定源與目標  295

12.2 target 和mode  297

12.3 綁定轉換器  300

12.4 相對綁定源  305

12.5 this 綁定源  305

12.6 通知機制  309

12.7 簡單的綁定服務  310

12.8 datacontext 設定  315

12.9 簡單的判斷  320

12.10 轉換器及其屬性  323

12.11 獲取與設定 327

12.12 textbox 的綁定更新  333

第13 章 矢量圖形  345

13.1 shape 庫  345

13.2 canvas 和grid  346

13.3 overlapping 和zindex   348

13.4 polyline 和自定義曲線  349

13.5 cap、join 和dash 354

13.6 polygon 和fill  361

13.7 stretch 屬性  363

13.8 動態多邊形 364

13.9 path 元素 366

13.10 geometry 和transform  372

13.11 複合幾何圖形 377

13.12 全能的pathgeometry  377

13.13 arcsegment 屬性 379

13.14 貝塞爾曲線 387

13.15 path 標記語法 396

13.16 本章的來源 400

第14 章 光柵圖形 406

14.1 點陣圖類繼承關係 406

14.2 writeablebitmap 和uielement 408

14.3 像素位 414

14.4 點陣圖上的矢量圖形 418

14.5 圖形與墓碑化 423

14.6 保存到圖片庫 431

14.7 成為照片擴展程式 438

第15 章 動畫 449

15.1 基於幀與基於時間 449

15.2 動畫目標 452

15.3 單擊和旋轉 453

15.4 一些修改 456

15.5 基於xaml 的動畫 460

15.6 告誡 462

15.7 關鍵幀動畫 469

15.8 loaded 事件觸發器 472

15.9 附加屬性(非附加屬性)動畫 480

15.10 樣條曲線和關鍵幀 485

15.11 反彈球問題 493

15.12 漸變函式 497

15.13 透視變形動畫 502

15.14 動畫和屬性優先權 508

第16 章 兩類模板 512

16.1 contentcontrol 和datatemplate 512

16.2 檢查可視化樹 517

16.3 controltemplate 基礎 521

16.4 visual state manager  531

16.5 style 和template 的共享和重用 540

16.6 庫中的自定義控制項 543

16.7 slider 的變體 548

16.8 方便易用的thumb 558

16.9 自定義控制項 562

第17 章 項集合控制項 568

17.1 項集合控制項和可視化樹 569

17.2 自定義項的顯示 576

17.3 listbox 選中 580

17.4 itemssource 綁定 584

17.5 資料庫和業務對象 589

17.6 妙趣橫生的datatemplate  606

17.7 排序 609

17.8 更改panel  614

17.9 datatemplate 條形圖 616

17.10 顯示完整的卡片檔 622

第18 章 pivot 和panorama  633

18.1 pivot 和panorama 的對比 633

18.2 作曲家音樂播放器 644

18.3 與xna 關聯 647

18.4 xna 音樂類:medialibrary  649

18.5 顯示專輯 654

18.6 xna 音樂類:mediaplayer  659

譯者序

這是一本由Windows編程大師Charles Petzold為Windows Phone開發者編寫的書。這是一本使讀者知其然亦知其所以然,深入剖析Silverlight for Windows Phone原理的書。這本書深入介紹了XAML、布局原理、依賴屬性、數據綁定、矢量圖與光柵圖、動畫、模板和項集合控制項等Silverlight相關知識。同時也講述了螢幕方向處理、觸摸與手勢處理、感應器與相關服務、頁面導航、獨立存儲和墓碑化等Windows Phone特有的內容。如果你想開發Silverlight for Windows Phone應用程式,也想深入學習相關原理,請閱讀本書。如果你在開發中遇到Windows Phone相關問題,相信你可以從本書中找到答案。

本書英文版本推出之際,Mango版本並未發布,因此本書中的內容並未涉及Mango更新後的相關技術,不過這並不影響本書的時效性,因為Mango中絕大部分的技術並沒有本質上的變化,而本書又重在講解原理。我們在翻譯過程中也已儘量說明Mango版本與書中版本的差異,涉及版本變化的地方都通過譯者注提醒讀者注意。因此,在相當一段時間內,本書都可以作為Windows Phone開發的必備讀物。

本書從拿到原稿到翻譯完成,歷時9個月,在此期間,我們充分體會到了一個技術譯者的艱辛。從每一章的初譯、自審、互審到最終定稿,每個環節都必須小心翼翼,唯恐褻瀆了大師的傑作,更怕有負讀者的信任。9個月的經歷使我們充分認識到,技術圖書的翻譯工作考驗的絕不僅僅是譯者的技術功底和英文水平,更多的是譯者的毅力、耐力,甚至體力。當然,在此期間我們也收穫了許多感動。

本書引進之初,有幸得到劉江老師的引薦,胡德民先生的大力推動,謝工和楊海玲的大力支持,正是他們的幫助才促使本書成功引入國內,並達成翻譯意向,在此深表感謝。感謝李松峰在翻譯過程中提供的無私幫助,以及對我們延遲交稿的一再寬容與理解。感謝李靜編輯在交稿後期耐心細緻的編輯及各方面的積極配合。

為了保證譯稿的最終質量,我們又邀請了多位在微博、社區比較活躍的Windows Phone開發者進行了試讀、審閱,並根據反饋作出最後修訂。他們的無私奉獻,極大地提高了終稿質量,在此一併表示感謝(排名不分先後,以姓氏為序)。

柴曉偉(@windieChai)、陳凱(@chenkaiHome)、乾澤斌(@MoHoo-書中聖)、高雪松(@_雪松_)、李靖南(@納米咖啡)、李敬然(@李敬然-Gnie)、廖蘭勝(@wp7er)、劉偉(@牧羊人WindowsPhone7)、劉釗(@WindowsPhone_劉釗)、欒軒(@mike老欒)、朴春植(@貝殼笨)、沈文琪(@歌劇迷)、施炯(@ dearsj001-施炯)、田永智(@我在玩飯否)、徐水峰(@徐水峰)、嚴飛(@飛雁無影)、俞仁傑(@RangerYu)、翟凡(@翟凡zf)、張栓虎(@MxMxM)、張崟(@金山崟霸)、周岳(@德先生與賽先生)、張欣(@張欣丨WPMind)。

當然,還要感謝父母,沒有他們就沒有我們及這本書;感謝家人的體諒,為了翻譯這本書犧牲了很多與他們共處的時間;感謝多年支持我們的朋友,你們的支持是我們前進的動力。

最後,我們想要告訴你:作為譯者,我們已經嘗試各種手段避免繆誤,但畢竟初次譯書經驗有限,疏漏之處在所難免,還望海涵。當然,我們更期待讀者能將發現的錯誤反饋給我們,以便我們整理勘誤,避免誤導更多人。

也歡迎讀者通過微博或部落格與我們交流。

譯者

2011年12月

序言

中文版序一

隨著雲計算技術的落地和行動網路頻寬的提高,移動網際網路迎來了一個高速發展的新時代。藉助雲端強大的數據計算、存儲、挖掘和整合能力,整個移動網際網路的格局正在發生翻天覆地的變化。移動終端將不僅僅作為一個通訊工具,而且會變成強大的雲計算的終端之一。

基於這個目標,未來對手機的要求也越來越高。需要手機變得越來越智慧型,功能越來越豐富,操作越來越便捷,與網路的整合越來越緊密。為了實現這些需求,必須有一個優秀的作業系統做支撐。

國內外各大移動網際網路廠商都很敏銳地意識到了這一點。微軟作為老牌的智慧型系統領航者,對此也投入了極大的熱情,推出了“以人為本”的智慧型手機——Windows Phone,其獨特的設計風格Metro為用戶帶來了全新的體驗,簡約、大氣、智慧型、易用,更符合現代用戶越來越高的需求。隨著諾基亞等各大手機製造商加入微軟陣營,Windows Phone的前景也愈發光明。

對終端用戶而言,除了優秀的作業系統平台以外,他們更關心是否有足夠的高質量應用程式。這也正是廣大Windows Phone開發者的機遇,迅速掌握相關開發技術,快速高效地開發出高質量的Windows Phone應用程式是每位開發者的目標。本書是Charles Petzold大師的傑作,一定能幫助開發者更快、更好地實現這個目標,引領開發者步入Windows Phone開發領域。願本書幫助中國的Windows Phone開發者實現夢想!

微軟(中國)有限公司技術顧問總監趙立威

2011年12月

中文版序二

如果你曾經使用過基於微軟Windows Mobile作業系統的智慧型手機,要問它給你留下的印象,我猜你的回答很有可能是“它像一台電腦”。是的,11年前微軟利用自己在PC方面的大量經驗和技術,為大家帶來了Pocket PC,然後是Windows Mobile系列的移動設備作業系統。Pocket PC的特點就是像“電腦”一樣無所不能,你可以用它完成簡單的日常辦公,也可以用它玩遊戲,甚至在大量的行業套用中也能看到它的身影。

但是,隨著蘋果公司iPhone的出現,這一切慢慢發生了變化。越來越多的手機作業系統開始注重起了普通消費者的日常套用需求。以iPhone、Android等為代表的新一代智慧型手機正在迅速地蠶食微軟Windows Mobile的市場份額。起初微軟也曾經考慮過在Windows Mobile 6.x的基礎上繼續研發新一代的移動作業系統,但是他們很快就發現這太不現實。Windows Mobile系統身上背負的歷史包袱太重,已無力承擔現代的智慧型移動作業系統的重任。微軟急需一種能夠真正抓住消費者需求的新型移動作業系統來挽回市場,Windows Phone 7作業系統適時而生,於2010年10月上市。

起初Windows Phone 7隻支持5種語言(英語、法語、德語、義大利語和西班牙語),而用戶也只能在17個國家和地區購買和下載應用程式。隨著2011年Mango更新包的發布,Windows Phone的版本號升級為7.5,支持的語言也達到了25種,Windows Phone Marketplace支持的國家和地區也達到了35個。Windows Phone Marketplace中的軟體數量也順利地突破了40 000大關。

到目前為止,儘管Windows Phone還沒有在中國大陸上市,但是它已經向中國的開發者開放。你可以到App Hub()上註冊一個開發者賬號,將套用提交到Windows Phone Marketplace上,從而獲得收益。App Hub採用了和蘋果類似的做法:你需要支付99美金的年費,並且微軟會從你在Windows Phone Marketplace上銷售軟體所得收益中拿走30%。

面對App Store中的上百萬個套用,名不見經傳的套用很難脫穎而出。同時,Android的幾百個不同的市場又會讓你面臨著如何分發和銷售套用的難題。作為開發人員,如果你想靠編寫套用來賺錢,那么現在是時候考慮Windows Phone了。

Windows Phone支持Silverlight for Windows Phone和XNA兩種框架。前者主要用來快速開發各種Windows Phone上的套用,這也是本書的重點部分;如果你的興趣更多的是編寫遊戲的話,後者應該是你關注的內容。本書英文原版知識覆蓋全面、示例清晰易懂,出版後一直被Windows Phone開發者奉為寶典。感謝人民郵電出版社的大力引進,同時感謝三位譯者在翻譯本書過程中付出的辛勤勞動。

不用再等待什麼了,快點打開本書和電腦,開始你的第一個Windows Phone應用程式吧!

微軟MVP 張欣

相關詞條

相關搜尋

熱門詞條

聯絡我們