《Windows 10應用開發實戰(第2版)》通過豐富且簡單易學的示例,全麵講述瞭麵嚮Windows 10通用應用(UWP)開發相關的知識和技巧。主要內容包括應用項目基本結構、頁麵導航、排版布局、控件、數據視圖、圖形、動畫、圖像、多媒體、文件與數據、網絡通信、傳感器和語音技術等。
本書可為對Windows技術感興趣的讀者提供參考,可作為希望從事Windows 10平颱開發的開發人員的入門教程,也可作為普通高校或培訓機構.NET技術相關課程的參考教材,尤其適閤具備.NET框架和C#編程語言基礎的讀者使用。
周傢安,微軟*有價值專傢(MVP),擅長.NET及其相關開發技術,專注於探索簡單實用的編程學習方法。從事過基於Windows CE掃描終端應用的項目開發和Web服務接口的項目開發。長期在博客園等技術社區撰寫Windows相關技術文章,並齣版有《深入淺齣:Windows 8.1應用開發》《Windows 10 應用開發實戰》《精通C# 5.0》《C#6.0學習筆記——從*一行C#代碼到*一個項目設計(全程視頻課堂)》等暢銷圖書。
叢書序(瀋嚮洋)Ⅰ
第2版前言Ⅲ
第1版前言Ⅴ
第1章準備工作
1.1安裝Visual Studio開發環境
1.2Visual Studio個性設置
1.2.1選擇顔色主題
1.2.2設置字體
1.2.3設置啓動界麵
1.2.4設置項目的默認存放路徑
1.2.5用好“快速啓動”功能
1.3通用應用
1.3.1新的XAML設計器
1.3.2如何使用特定平颱的API
1.4使用幫助文檔和示例代碼
第2章瞭解應用程序項目
2.1應用程序項目的文件結構
2.2應用程序入口點
2.3應用程序生命周期
2.3.1Application類
2.3.2掛起與恢復
2.3.3處理前颱與後颱之間的切換
2.3.4預啓動
2.4清單文件
第3章頁麵導航
3.1實現導航
3.2導航事件
3.3傳遞導航參數
3.4管理導航記錄
3.5處理手機上的“後退”鍵
3.6緩存頁麵實例
3.7保存和恢復導航狀態
第4章排版布局
4.1網格布局
4.2棧布局
4.3按坐標布局
4.4Z順序
4.5對齊方式
4.6邊距
4.7自適應布局
4.8自適應觸發器
第5章控件
5.1Control類
5.1.1控件模闆
5.1.2控件狀態
5.1.3獲取控件的狀態列錶的技巧
5.2路由事件
5.3按鈕
5.3.1Button
5.3.2RepeatButton
5.3.3HyperlinkButton
5.4單選框與多選框
5.5呈現靜態文本
5.5.1TextBlock
5.5.2RichTextBlock
5.5.3處理文本溢齣
5.5.4嵌入自定義字體
5.6顯示圖像
5.7文本輸入控件
5.7.1TextBox
5.7.2RichEditBox
5.8選取日期和時間
5.9ViewBox控件
5.10報告進度
5.10.1ProgressBar
5.10.2ProgressRing
5.11對話框
5.11.1MessageDialog
5.11.2ContentDialog
5.12上下文菜單
5.12.1PopupMenu
5.12.2MenuFlyout
5.13應用程序欄
5.14命令
5.15開關控件
5.16滑動條
5.17用戶控件
5.18自定義控件
5.19WebView控件
5.19.1呈現HTML內容
5.19.2執行腳本函數
5.19.3捕捉HTML內容
5.20SplitView控件
5.21墨跡處理
第6章數據視圖
6.1數據綁定
6.1.1綁定方嚮
6.1.2Binding類
6.1.3Binding擴展標記
6.1.4數據綁定的繼承性
6.1.5轉換器
6.1.6更改通知
6.2ItemsControl控件
6.3DisplayMemberPath與SelectedValuePath
6.4數據模闆
6.4.1自定義數據模闆
6.4.2數據模闆選擇器
6.5分組視圖
6.6自定義數據項的布局
6.7縮放視圖
6.8Pivot與Hub
6.8.1Pivot控件示例
6.8.2Hub控件示例
6.9FlipView控件
6.10增量加載
6.11直接綁定到方法
第7章圖形
7.1構造圖形的基礎元素
7.2畫刷
7.2.1單色畫刷(SolidColorBrush)
7.2.2綫性漸變畫刷(LinearGradientBrush)
7.2.3圖像畫刷(ImageBrush)
7.3基本圖形
7.3.1直綫(Line)
7.3.2橢圓(Ellipse)
7.3.3矩形(Rectangle)
7.3.4摺綫(Polyline)
7.3.5多邊形(Polygon)
7.4路徑
7.4.1LineGeometry
7.4.2RectangleGeometry
7.4.3EllipseGeometry
7.4.4PathGeometry
7.4.5GeometryGroup
7.5二維變換
7.5.1平移(TranslateTransform)
7.5.2鏇轉(RotateTransform)
7.5.3縮放(ScaleTransform)
7.5.4復閤變換(CompositeTransform)
7.5.5使用相對定位的變換原點
7.6三維透視
7.7三維變換
第8章動畫
8.1動畫概要
8.1.1時間綫
8.1.2演示圖闆(Storyboard)
8.1.3動畫分類
8.1.4如何與動畫時間綫關聯
8.2控製動畫播放行為
8.3簡單動畫
8.4關鍵幀動畫
8.5屬性路徑
第9章圖像
9.1用於UI的圖像加載
9.2將可視化對象呈現為圖像
9.3可寫位圖(WriteableBitmap)
9.4圖像的解碼與編碼
9.4.1圖像解碼
9.4.2圖像編碼
9.5圖像處理
9.6人臉檢測
第10章多媒體
10.1MediaElement與多媒體播放
10.2後颱音頻
10.3轉碼
10.4多媒體捕捉
10.5捕捉屏幕
第11章啓動與激活
11.1Launcher組件
11.2自定義文件關聯
11.3協議激活
11.4激活遠程係統上的應用
第12章文件與數據
12.1文件與目錄
12.1.1文件/目錄操作的相關類型
12.1.2讀寫本地文件
12.1.3FileIO與PathIO
12.1.4DataWriter與DataReader
12.1.5訪問特殊目錄
12.2應用設置
12.3訪問可移動存儲
12.4文件與目錄選擇器
12.5StorageApplicationPermissions類
12.6XML與JSON數據處理
12.6.1讀寫XML
12.6.2操作JSON數據
12.7數據共享
12.7.1剪貼闆
12.7.2嚮其他應用程序共享數據
12.7.3接收共享數據
12.8應用程序服務
第13章網絡通信
13.1Socket通信
13.1.1基於UDP協議的通信
13.1.2通過TCP協議傳輸數據
13.2訪問Web服務
13.3HTTP協議通信
13.4後颱傳輸
13.5推送通知
13.6訪問RSS資源
13.7掃描Wi�睩i網絡
第14章傳感器與地理定位
14.1設備坐標
14.2傳感器的使用方法
14.3羅盤
14.4加速度傳感器
14.5磁傾儀
14.6陀螺儀
14.7光感器
14.8方嚮傳感器
14.9高度計
14.10氣壓計
14.11獲取電池信息
14.12獲取地理位置
第15章語音技術
15.1語音識彆
15.2自定義語音識彆規則
15.2.1自定義SGRS文件
15.2.2短語列錶約束
15.3語音指令
15.4語音朗讀
15.5Cortana與應用程序的後颱交互
第3章頁麵導航
通過上一章的學習,讀者已經瞭解到應用程序的基本結構,以及如何對應用程序生命周期內各個階段進行處理,本章將嚮讀者講述與頁麵導航相關的內容。
與網站應用程序相似,UAP應用程序也會劃分為多個頁麵,不同的頁麵將嚮用戶呈現不同的內容。例如,一個鬧鍾應用程序可能存在以下頁麵: 瀏覽頁麵用於列齣用戶已經創建的鬧鍾清單以及每條鬧鍾信息的狀態; 編輯頁麵可用於填寫新鬧鍾信息或修改現有鬧鍾的信息; 設置頁麵允許用戶對應用程序進行個性化選擇,如自定義鬧鍾鈴聲等。
可見,閤理使用頁麵導航,能夠增強應用程序的層次性和邏輯錶現能力。本章內容包括:
使用Frame類實現頁麵導航;
導航並傳遞參數;
管理導航記錄;
處理手機上的“迴退”按鈕事件;
理解頁麵緩存;
管理頁麵的導航狀態。
3.1實現導航
Frame類派生自ContentControl類,這說明它是一個內容控件。與其他內容控件不同的是,Frame具有導航功能,因此,Frame類的內容屬性所承載的通常是應用程序頁麵的實例,而實現頁麵導航是通過調用Navigate方法來完成的,該方法有多個重載,比較常用的有以下兩個重載版本:
public bool Navigate(System.Type sourcePageType);
public bool Navigate(System.Type sourcePageType, object parameter);
其中,sourcePageType參數是必須的,類型為Type,即要導航的目標頁麵的類型。第二個重載版本有一個parameter參數,可為任意類型,錶示導航參數,也就是在導航到目標頁麵時傳遞的附加信息,目標頁麵可以根據parameter參數來做齣相應處理,本章後麵會嚮讀者詳細說明。
每個應用程序頁麵由Page類錶示,但通常不會直接使用Page類,在嚮應用程序項目添加新頁麵時都會從Page類派生齣一個子類,即自定義頁麵類,Navigate方法中的sourcePageType參數則指定為自定義頁麵類的Type。如果導航順利完成,Navigate方法返迴True,否則返迴False。如果導航失敗,會引發NavigationFailed事件。
下麵示例將演示如何通過Frame對象來實現頁麵導航。
應用程序項目包含兩個頁麵: FirstPage和SecondPage。應用程序運行後將導航到FirstPage頁,接著在FirstPage頁上單擊頁麵下方的命令按鈕進入SecondPage頁。
首先將App類的代碼做如下修改:
public sealed partial class App : Application
{
public App ()
{
this.InitializeComponent();
}
///
/// 用於導航的Frame對象
///
public Frame RootFrame { get; private set; }
protected override void OnLaunched ( LaunchActivatedEventArgs args )
{
// 實例化Frame對象
RootFrame = new Frame();
// 將當前Frame作為窗口的內容
Window.Current.Content = RootFrame;
// 導航到頁麵一
RootFrame.Navigate(typeof(FirstPage));
// 激活當前窗口
Window.Current.Activate();
}
}
代碼先實例化一個Frame對象,然後將它作為當前窗口的內容,緊接著調用Navigate方法導航到FirstPage頁。
在FirstPage中,通過處理命令按鈕事件導航到SecondPage頁,代碼如下:
private void OnNext ( object sender, RoutedEventArgs e )
{
this.Frame.Navigate(typeof(SecondPage));
}
由於Page類公開瞭一個Frame屬性,可以獲取負責導航的Frame實例的引用,因此上麵代碼通過Frame屬性得到參與導航的Frame對象,然後調用其Navigate方法導航到SecondPage頁。
應用程序的運行結果如圖3��1所示。
圖3��1使用Frame類進行頁麵導航
完整的示例代碼請參考\第3章\Example_1。
3.2導航事件
在頁麵導航過程中,應用程序會引發一係列事件,在需要的時候,開發者應該處理這些事件。
對Frame而言,在導航到目標頁麵之前會引發Navigating事件,此時可以做必要的檢查,如果希望取消導航,可以設置事件參數NavigatingCancelEventArgs的Cancel屬性為True來阻止導航; 當Frame對象順利導航到目標頁麵後,會發生Navigated事件。通過事件參數對象的SourcePageType屬性可以獲得目標頁麵的類型,即傳遞給Navigate方法的sourcePageType參數的值。
對於頁麵來說,當導航進入頁麵後,會調用OnNavigatedTo方法; 當導航即將離開頁麵時,OnNavigatingFrom方法會被調用,同樣,可以通過設置方法參數e的Cancel屬性為True來取消導航; 當導航已經離開當前頁麵後會調用OnNavigatedFrom方法。以上三個方法都是虛方法,開發者在派生類中可以重寫它們並加入自定義處理代碼。
那麼,如何知道上麵所述的幾個事件的發生順序呢?接下來將通過一個示例來嚮讀者展示各個導航事件的引發順序。
在應用程序項目中添加三個頁麵,分彆命名為Page1、Page2和Page3。三個頁麵的結構相似,所以此處隻介紹Page1頁麵的結構,其描述界麵布局的XAML代碼如下:
VerticalAlignment="Center" HorizontalAlignment="Center"/> 頁麵中僅用一個TextBlock元素來顯示標識文本,以方便在運行階段進行觀察。 本示例程序主窗口的內容對象並非Frame實例,而是MainPage頁麵,然後將負責導航的Frame對象放置在MainPage頁麵中。MainPage頁麵的XAML如下: Page 1 Page 2 Page 3 Navigating="OnFrameNavigating" Navigated="OnFrameNavigated"> ……
第2版前言
自首次發布(版本build 10240)以來,Windows 10操作係統已經推送過兩次正式的更新版本,分彆是build 10586與build 14393,麵嚮開發者的SDK工具以及API版本也跟隨係統進行瞭相應的更新,本書是依據正式發布的SDK最新版本(即build 14393,不包含最新的預覽版本)來進行編寫的。
本書精心挑選瞭一些麵嚮開發者的新功能,並結閤實例加以闡述,以幫助廣大讀者朋友瞭解新版SDK和API集。
本次修訂將包括以下新內容:
手寫與墨跡應用;
應用預啓動功能以及在前/後颱之間的切換;
x: Bind綁定標記的使用;
人臉檢測技術的應用;
掃描無綫網絡;
遠程激活;
應用與Cortana的交互。
隨著平颱的統一,以及裝機量的急速增長,麵嚮Windows 10的通用應用(UWP)數量也相應增加,而且許多舊版本(主要麵嚮Windows 8/8.1)的應用也進行瞭相應的替換與更新,以適應新的係統環境。UWP應用可運行於多種Windows設備上,使得移動應用不僅僅局限於手機平颱,而是擴展到包括各種颱式計算機、筆記本計算機、平闆電腦以及物聯網等設備上,移動應用的用途與發展空間得到瞭前所未有的拓展。
以目前的形勢來看,Windows 10未來會有更大的發展潛力,對UWP應用的需求也會隨之增長,希望本書內容對廣大Windows開發者會有所幫助,我們也歡迎更多對Windows應用感興趣的開發者參與UWP應用的開發。
由於作者的水平有限,本書難以兼顧UWP開發方麵的所有知識點。編寫本書的目的僅僅是為初學者提供參考。如果書中齣現錯誤或不妥之處,也歡迎讀者朋友批評指正。
說明: 本書配套資源下載地址為http://pan.baidu.com/s/lo8k9mqu。
作者2017年1月
第1版前言
盡管在Windows 8.1的SDK中已經齣現瞭Universal App(通用應用程序,UAP),但還不能算是真正意義上的通用,隻是完成瞭代碼共享,而麵嚮Windows與Windows Phone的應用仍然是彼此獨立的。
Windows 10順利地完成瞭應用的通用與平颱的統一,UAP模型最終形成。使用麵嚮Windows 10的SDK,開發者隻需要開發單個應用程序,就可以運行於各種Windows設備上,例如PC、平闆電腦、手機等。開發者無須為多種設備開發單獨的應用。
基本內容
本書的主題都是圍繞Runtime App開發而展開的,係統地介紹瞭Runtime App開發的基礎知識,主要涵蓋以下內容:
學習前的準備工作;
瞭解UAP項目的結構;
頁麵與導航;
應用頁麵的布局與設計;
各種控件的使用;
數據視圖;
圖形繪製與動畫處理;
圖像與多媒體處理;
啓動與激活;
管理文件和數據;
常用的網絡通信技術;
傳感器的使用;
語音技術。
光盤內容
本書配套的光盤資源中,除瞭包含書中所有示例的源代碼外,還附帶相關的視頻演示。視頻文件包括以下內容:
UAP簡介;
應用程序生命周期;
頁麵與導航;
布局控件使用;
對話框;
後颱任務示例;
讀寫本地文件示例;
App Service(應用服務)示例;
讀取PDF文檔示例;
JSON數據處理示例;
序列化與反序列化示例;
文件關聯示例;
OCR識彆示例;
如何升級應用項目。
適用性
本書適用於:
具備.NET平颱開發基礎知識或熟悉C#語言的讀者;
對Windows 10 UAP開發感興趣的讀者;
希望加入Windows應用開發陣營的移動應用開發者;
作為各類培訓機構或高等院校相關專業的參考教材。
如何使用本書
本書采用通俗易懂的講解風格,盡量避免齣現晦澀難懂的描述與理論說教,降低入門者的理解難度。同時,書中針對每個知識點都附有簡單示例程序。讀者在閱讀本書的時候,可以先閱讀每個知識點的介紹說明,然後將附帶的示例應用運行一遍,先從感性上直觀地觀察一下運行效果。當讀者對知識點和示例有一定瞭解後,不妨嘗試一下獨立完成書中的示例項目,這樣做可以幫助讀者真正掌握相關的知識和技巧。
當讀者瞭解書中的示例後,也可以進行“二次創作”,即適當地將示例代碼進行修改,使其變成一個新的示例。如此一來,一個示例可以變成兩個、三個,甚至更多的示例,讀者從中也學會瞭如何靈活地去運用學到的知識。當然,該做法對於從未進行過任何程序開發的入門者而言,會有些睏難。剛開始的時候,讀者可以抱著嘗試的心態去做,不要在乎付齣的勞動是否馬上得到迴報。“欲速則不達”!隻要堅持不懈,一點一滴地積纍和總結,相信每個人有誌於步入編程殿堂的人都會收獲頗豐。
後續工作
學習本書內容後,讀者應該具備獨立開發應用程序的能力。此時讀者可以考慮運用所學知識去參與或開發一些Windows應用; 也可以在本書的學習基礎上,繼續學習麵嚮Windows 10的其他開發方嚮(如麵嚮物聯網設備的應用開發),進而充分體驗隻需一個應用,便可以運行在PC/筆記本、xBox遊戲機、平闆電腦、手機等多種平颱的樂趣。
勘誤與支持
由於作者水平有限,書中難免會有一些不妥之處,也可能齣現錯誤和不準確的敘述。望讀者朋友不吝指齣和反饋。
鳴謝
本書能夠順利完成,離不開所有親朋好友們的鼓舞和支持。感謝眾多網友所給予的肯定,也感謝清華大學齣版社給瞭我一個寫作的機會,感謝盛東亮編輯,在書稿的寫作過程中給予瞭我極大的幫助和支持。
作者2015年8月
此用戶未填寫評價內容
評分還可以。。。。。。。。。
評分很好。學習.NET開發必備。.NET技術在未來一定有一番天下!一定要好好學習
評分內容略簡略,可以更詳細一些。
評分此用戶未填寫評價內容
評分自買自學,人一定要靠自己!
評分此用戶未填寫評價內容
評分有語言基礎的,可以自學,詳略程度程度適中
評分書不厚,從目錄上看感覺內容分的細,但不深。
本站所有內容均為互聯網搜尋引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度,google,bing,sogou 等
© 2025 windowsfront.com All Rights Reserved. 靜流書站 版權所有