本書運用豐富的實例系統論述了Windows應用程式開發的基本方法、技能與技巧。本書重點介紹Windows商店應用程式(Windows Store App)開發,共包含12章的豐富內容,分別詳盡剖析了以下知識:應用程式專案的基本組成元素和脈絡、應用資訊管理與頁面導航、程式頁面排版與佈局控制項的使用、常規控制項與資料集合控制項的使用、資料綁定、圖形的繪製與二維變換、動畫與多媒體處理、I/O與資料管理、網路程式設計與應用、回應用戶輸入和觸控事件。
本書適合作為Windows技術愛好者及程式設計人員的入門參考,也可作為培訓.NET技術相關課程的參考教材,尤其適合具備.NET框架和C#程式設計語言基礎的讀者參考使用。
作者簡介:
周家安
微軟最有價值專家(MVP),擅長.NET及其相關開發技術,專注於探索簡單實用的程式設計學習方法。從事過以WindowsCE為基礎掃描終端應用開發和Web服務介面開發。樂於透過撰寫部落格來分享一些實用的程式設計技巧。
作者序
前言
在Windows 8 作業系統正式發佈大約8 個月後,微軟公司發佈了Windows 8.1預覽版。Windows 8.1 的正式版本已在去年10 月份發佈。Windows 8 是一場大的變革,微軟公司努力嘗試實現桌上型PC、筆記型電腦以及行動終端裝置的統一與整合。對希望加入Windows 市集應用程式開發者行列的朋友們來說,無疑是充滿新機會的。
首先要向大家說明的是,其實Windows 8 作業系統的應用程式有兩種:一種是我們已經非常熟悉的桌面應用,由於Windows 8 仍然保留Windows 桌面,因此許多執行於Windows 7 作業系統上面的應用程式都能在Windows 8 桌面上表現出色;另一種是Windows 市集應用程式,由於該類應用程式是在Windows 市集上發佈的,因此被稱為「Windows Store App」。這一種應用程式主要是觸控裝置的(在非觸控電腦上也能使用),本書所說明的Windows 8 /8.1 應用程式開發指的就是第二種,即Windows 市集應用程式開發。
Windows RT 是Windows 8 的「精簡版」,它主要是隨同終端一同發售的,如平板裝置。Windows RT 完全支援Windows 市集應用程式和少量的桌面應用(如內建的Office 2013 應用)。Windows RT 也有Windows 桌面,但是對執行桌面應用程式有限制,通常只能安裝從市集下載的應用程式。
當我第一次撰寫Windows 市集應用程式時,沒有絲毫的陌生感,一切都是那麼地熟悉,面對Windows 市集的API 沿用了.NET 框架的現有模型,支援VisualBasic.NET、C#、C++ 和HTML5 + JavaScript 等語言進行開發。對.NET 開發者來說,幾乎不需要再學習就可以完成Windows 市集應用程式的開發。
本書都說明了哪些基礎知識
本書以通俗容易的說明方式,介紹與Windows 市集應用程式開發相關的基礎知識以及運用技巧。由淺入深,注重實例示範,強化實用價值。全書內容涵蓋以下幾個方面:
• 應用程式專案的基本組成元素和脈絡
• 應用資訊管理與頁面導覽
• 程式頁面排版與版面配置控制項
• 正常控制項與資料集合控制項的使用
• 資料綁定
• 圖形的繪製與2D 轉換
• 動畫與多媒體處理
• 檔案IO 與資料管理
• 網路程式設計與應用
• 回應使用者輸入和觸控事件
這本書適合我嗎
本書內容立足於基礎知識,但並不適合完全沒有程式設計基礎的讀者。畢竟本書的重點是接近Windows 市集應用程式開發,不會花大篇幅去說明程式設計基礎。因此,有關C# 語言的基礎知識,請讀者參閱MSDN 說明文件以及其他入門教材。
相對而言,本書的內容比較適合在.NET 方面具備一定基礎的讀者使用,如果讀者學習過WPF 或Silverlight 相關知識,學習本書的內容會變得更加輕鬆。
此外,本書也可以作為開設與.NET 技術相關課程的教育訓練機構或大專院校的參考教材。
鳴謝
本書能夠順利完成,離不開所有親朋好友們的鼓舞和支援。也感謝清華大學出版社給了我一個寫作的機會,感謝盛東亮編輯,在書稿的寫作過程中給予我極大的幫助和支援。
前言
在Windows 8 作業系統正式發佈大約8 個月後,微軟公司發佈了Windows 8.1預覽版。Windows 8.1 的正式版本已在去年10 月份發佈。Windows 8 是一場大的變革,微軟公司努力嘗試實現桌上型PC、筆記型電腦以及行動終端裝置的統一與整合。對希望加入Windows 市集應用程式開發者行列的朋友們來說,無疑是充滿新機會的。
首先要向大家說明的是,其實Windows 8 作業系統的應用程式有兩種:一種是我們已經非常熟悉的桌面應用,由於Windows 8 仍然保留Windows 桌面,因此許多執行於Windows 7 作業系統上面的應用程式都能在Windows 8 桌面上表...
目錄
Chapter 01準備工作
1.1 邂逅XAML
1.1.1 XAML 的命名空間
1.1.2 擴充標記
1.2 了解應用程式專案
1.3 尋找程式的入口點
1.4 一些技巧
1.4.1 讓開發環境更加個性化
1.4.2 實用的偵錯技巧
1.4.3 請撰寫標準的程式
1.4.4 巧用其他學習資源
Chapter 02應用程式管理
2.1 儲存和恢復應用程式狀態
2.1.1 使用本機應用程式設定儲存狀態資訊
2.1.2 使用序列化方式儲存狀態資訊
2.2 設定應用程式的基本資訊
2.2.1 設定應用標題和說明
2.2.2 取代初始螢幕圖片
2.2.3 設定動態磚的背景顏色
2.2.4 設定應用程式圖示
2.3 頁面導覽與參數傳遞
2.3.1 簡單的頁面導覽實現
2.3.2 向頁面傳遞參數
2.3.3 控制頁面的快取模式
2.3.4 將Frame 嵌入到一個頁面中
Chapter 03介面版面配置
3.1 線性版面配置 — StackPanel
3.2 精確定位 — Canvas
3.3 網格版面配置之Grid
3.3.1 劃分行和列
3.3.2 定位子元素
3.3.3 Grid 版面配置實例
3.4 網格版面配置之VariableSizedWrapGrid
3.5 對齊方式與邊距
3.5.1 對齊方式
3.5.2 Margin 與Padding
3.6 根據應用程式的視圖調整版面配置
Chapter 04常用控制項
4.1 使用控制項的一些準則
4.1.1 樸素大方最重要
4.1.2 植入廣告要恰到好處
4.1.3 介面美化與使用者體驗要取得平衡
4.2 按鈕
4.2.1 Button
4.2.2 HyperlinkButton
4.2.3 RadioButton
4.2.4 CheckBox
4.2.5 RepeatButton
4.3 文字顯示控制項
4.3.1 TextBlock
4.3.2 RichTextBlock
4.3.3 RichTextBlockOverflow
4.4 文字輸入控制項 — TextBox
4.4.1 驗證輸入內容
4.4.2 設定InputScope
4.4.3 TextChanged 事件
4.4.4 隱藏右鍵選單
4.5 密碼輸入控制項 — PasswordBox
4.6 影像呈現控制項 — Image
4.7 內容的伸展與縮放 — Viewbox
4.8 滑桿 — Slider
4.8.1 ValueChanged 事件
4.8.2 刻度線的位置
4.8.3 ThumbToolTipValueConverter 屬性
4.9 提示工作正在進行 — ProgressRing
4.10 進度指示器 — ProgressBar
4.11 「開關」控制項 — ToggleSwitch
4.12 工具提示控制項 — ToolTip
4.13 訊息提示框 — MessageDialog
4.14 使用者控制項
4.15 應用程式欄 — AppBar
4.16 WebView 控制項與HTML 呈現
4.16.1 根據輸入的位址瀏覽頁面
4.16.2 直接為WebView 設定HTML 檔案
4.16.3 在WebView 中呼叫指令稿
Chapter 05資料綁定與集合控制項
5.1 資料綁定與Binding 類別
5.1.1 Path 屬性和Source 屬性
5.1.2 DataContext 與{Binding}擴充標記
5.2 INotifyPropertyChanged 介面與雙向綁定
5.3 資料綁定與匿名類型
5.4 集合控制項初探
5.4.1 設定資料來源
5.4.2 DisplayMemberPath 屬性與SelectedValuePath 屬性
5.4.3 SelectionMode 屬性與SelectedItems 屬性
5.4.4 SelectionChanged 事件
5.5 資料模版
5.5.1 使用統一的資料模版
5.5.2 使用不統一的資料模版
5.6 ObservableCollection 集合
5.7 值轉換器
5.7.1 使用值轉換器
5.7.2 帶參數的值轉換器
5.8 在視覺化元素之間進行資料綁定
5.9 自訂項列表的版面配置
5.10 為資料顯示增加標題
5.10.1 使用Header 屬性
5.10.2 製作網格列表檢視
5.11 FlipView 控制項
5.11.1 在FlipView 控制項呈現影像
5.11.2 FlipView 控制項與資料綁定
5.12 增量載入與IsupportIncrementalLoading 介面
5.13 資料的分組
5.13.1 了解ItemsPath 屬性
5.13.2 GroupItems 屬性的來源
5.13.3 資料分組與LinQ 敘述
5.14 縮放檢視
5.14.1 ViewChangeStarted 和ViewChangeCompleted 事件
5.14.2 使用CollectionViewSource 讓SemanticZoom 控制項自動
完成檢視切換處理
5.15 Icommand 介面
Chapter 06圖形與動畫
6.1 基本圖形
6.1.1 Line
6.1.2 Rectangle
6.1.3 Ellipse
6.1.4 Polyline
6.1.5 Polygon
6.2 路徑
6.2.1 EllipseGeometry
6.2.2 RectangleGeometry
6.2.3 LineGeometry
6.2.4 GeometryGroup
6.2.5 PathGeometry
6.2.6 FillRule 屬性
6.3 筆刷
6.3.1 SolidColorBrush
6.3.2 LinearGradientBrush
6.3.3 ImageBrush
6.3.4 WebViewBrush
6.4 2D 轉換
6.4.1 TranslateTransform
6.4.2 ScaleTransform
6.4.3 RotateTransform
6.4.4 SkewTransform
6.4.5 TransformGroup
6.4.6 CompositeTransform
6.5 透視轉換
6.6 簡單動畫
6.6.1 DoubleAnimation
6.6.2 PointAnimation
6.6.3 ColorAnimation
6.7 關鍵頁框動畫
6.7.1 範例MyApp_1:滑動的圓
6.7.2 範例MyApp_2:「開門」動畫
6.7.3 範例MyApp_3:變色文字
6.8 控制動畫的播放行為
6.9 控制項模版中的動畫
6.9.1 修改控制項的預設模版
6.9.2 視覺化狀態的使用方法
Chapter 07搜尋、設定與共用整合
7.1 整合搜尋功能
7.1.1 為應用程式加入搜尋功能
7.1.2 ShowOnKeyboardInput 屬性
7.1.3 使用搜尋建議
7.1.4 搜尋啟動
7.2 應用程式設定
7.3 資料共用
7.3.1 剪貼簿
7.3.2 共用目標
Chapter 08 Toast 通知、動態磚與彈出選單
8.1 Toast 通知
8.1.1 如何產生Toast 通知
8.1.2 更改Toast 通知的提示聲音
8.1.3 在計劃時間後顯示Toast 通知
8.2 動態磚
8.2.1 為動態磚定義影像
8.2.2 更新動態磚資訊
8.2.3 建立次要動態磚
8.3 更新徽章提醒
8.4 使用彈出選單
Chapter 09多媒體處理
9.1 播放多媒體
9.1.1 使用MediaElement 播放多媒體範例
9.1.2 使用MediaElement 附帶的播放控制項
9.1.3 背景播放
9.2 多媒體捕捉
9.2.1 CameraCaptureUI
9.2.2 MediaCapture
9.3 影像的解碼與編碼
9.3.1 Png 格式轉Jpg 格式範例
9.3.2 影像反色處理範例
9.4 Play To
9.4.1 Play To 接收端應用範例
9.4.2 Play To 發送端應用範例
9.5 多媒體轉碼
9.6 將視覺化元素儲存為影像檔
9.7 語音朗讀
Chapter 10應用程式資料與檔案I/O
10.1 管理應用程式設定資料
10.1.1 應用程式設定存取簡單範例
10.1.2 合併設定值
10.1.3 管理設定容器
10.2 管理應用儲存區中的目錄和檔案
10.3 檔案選擇器
10.3.1 FileOpenPicker
10.3.2 FileSavePicker
10.4 目錄選擇器
10.5 自訂檔案選擇器的UI
10.5.1 FileOpenPickerUI 範例
10.5.2 FileSavePickerUI 範例
10.6 存取媒體櫃
10.7 FileIO 與PathIO
10.7.1 FileIO 類別的使用
10.7.2 PathIO 類別的使用
10.8 可存取儲存列表管理
10.9 流的操作
10.9.1 讀寫檔案流範例
10.9.2 記憶體流InMemoryRandomAccessStream 的使用
10.9.3 DataWriter 和DataReader
10.10 XML 處理
10.10.1 載入與儲存檔案
10.10.2 動態編輯XML 檔案
10.10.3 使用Linq to XML
10.11 處理JSON 資料
10.12 序列化與反序列化
10.12.1 XML 序列化與反序列化
10.12.2 JSON 序列化與反序列化
10.13 資料保護
10.14 檔案啟動器
10.15 檔案啟動
Chapter 11網路通訊
11.1 Socket 網路程式設計
11.1.1 聊天應用程式
11.1.2 使用StreamSocket 傳輸檔案
11.1.3 WebSocket 通訊技術
11.2 HTTP 通訊
11.2.1 HttpWebRequest 類別與HttpWebResponse類別的使用
11.2.2 如何向伺服器POST 資料
11.3 背景傳輸
11.4 存取Web 服務
11.4.1 呼叫普通的Web 服務
11.4.2 呼叫WCF 服務
11.5 存取RSS 資源
Chapter 12觸控與鍵盤事件
12.1 觸控操作
12.1.1 觸控事件引發的順序
12.1.2 觸控操作範例
12.2 Tapped 與RightTapped 事件
12.3 鍵盤事件
Chapter 01準備工作
1.1 邂逅XAML
1.1.1 XAML 的命名空間
1.1.2 擴充標記
1.2 了解應用程式專案
1.3 尋找程式的入口點
1.4 一些技巧
1.4.1 讓開發環境更加個性化
1.4.2 實用的偵錯技巧
1.4.3 請撰寫標準的程式
1.4.4 巧用其他學習資源
Chapter 02應用程式管理
2.1 儲存和恢復應用程式狀態
2.1.1 使用本機應用程式設定儲存狀態資訊
2.1.2 使用序列化方式儲存狀態資訊
2.2 設定應用程式的基本資訊
2.2.1 設定應用標題和說明
2.2.2 取代初始螢幕圖片
2.2.3 設定動態磚的背景顏色
2.2.4 設定應用...
購物須知
退換貨說明:
會員均享有10天的商品猶豫期(含例假日)。若您欲辦理退換貨,請於取得該商品10日內寄回。
辦理退換貨時,請保持商品全新狀態與完整包裝(商品本身、贈品、贈票、附件、內外包裝、保證書、隨貨文件等)一併寄回。若退回商品無法回復原狀者,可能影響退換貨權利之行使或須負擔部分費用。
訂購本商品前請務必詳閱退換貨原則。