WPF自學手冊

WPF自學手冊

《WPF自學手冊》是電子工業出版社出版的圖書,作者是李響。

基本介紹

  • 中文名:WPF自學手冊
  • 書名:葵花寶典——WPF自學手冊
  • 定價:79.00元(含DVD光碟1張)
  • 開本:16開
  • 頁碼:628頁
  • ISBN :978-7-121-11405-2
宣傳語,作者簡介,內 容 簡 介,楔 子,目 錄,

宣傳語

欲精通WPF,必先自“功”,即必先經歷如下七步:
程式江湖
心法
小有所成
峰迴路轉,夯實基礎
紫杉紅燭
華山之巔
志向無限大

作者簡介

李響,信息工程大學測繪學院製圖學與地理信息工程系講師,博士研究生。目前研究方向為地理信息系統和人機互動。十年程式生涯,漫漫征途,方修得一本寶書《葵花寶典——WPF自學手冊》。

內 容 簡 介

《WPF自學手冊》全名為《葵花寶典——WPF自學手冊》,由李響編著,於2010年8月出版。這本WPF葵花寶典最大的作用是:讓從未接觸過Microsoft Windows Presentation Foundation的人,能夠從初學入門到精通掌握運用WPF來進行Web開發。
這本書最大的作用是讓從未接觸過Microsoft Windows Presentation Foundation的讀者能夠從初學到精通掌握,運用WPF來進行Web開發,而且這本書的敘事風格和手法使得讀者在經歷掌握Microsoft WPF開發的整個過程是如此輕鬆快樂,在作者風趣調侃的語言當中不知不覺地學會WPF開發。本書從WPF的相關工具開始講起,從WPF的體系結構、XAML、依賴屬性、路由事件、命令等方面為讀者奠定了一個堅實的學習基礎。之後就切入了應用程式視窗、頁面導航、布局等起步套用,能讓讀者及時地體會 到學習的成就感和樂趣。接下來的控制項、樣式、數據綁定、二維圖形、動畫等相關內容則能夠為讀者的WPF技術提升到一個比較高的層次,如同插上翅膀,自由翱翔。
這本書對於WPF核心技術的原理、概念、技術、技巧與開發實踐的講述,是基於一位完全不懂WPF的菜鳥學習經歷的,非常符合國內程式設計師WPF技術的初學路線,如果您想學習Microsoft WPF技術的話,那么這本書將是您的不二選擇。
本書易於理解,適合那些.NET的新手,並有助於理解像MicrosoftExpressionBlend這樣產品的精髓。適合各層次Web開發人員閱讀。

楔 子

江湖中盛傳一部奇書,誰要依此書修煉武功就能“號令群雄,莫敢不從”,此書正是天下第一奇書——《葵花寶典》。
天下武功都是循序漸進,越到後來越難。但此書卻違背常理,最難的是第一關。只要打通這一關,以後就遇山開山,遇水架橋,佛來斬佛,魔來斬魔。而這第一關則是“欲練神功,引刀自宮”,據說有人揮淚自宮之後成為了傳說中的“東方不敗”。但是也有不幸的人是在地攤上花上五毛錢買的盜版《葵花寶典》,翻開第1頁是“欲練神功,必先自宮”,於是依言揮刀自宮。血還未止,忍疼翻到第2頁,又是8個大字“即使自宮,未必成功”映入眼帘。此時後悔已經來不及了,只好繼續翻到第3頁,還是8個大字“如不自宮,也能成功”,偶的神啊!
廢話不能再多說了,本書的頭號主角就要閃亮登場。此人姓木,單名一個木,全名木木,呆若木雞的木。大學二年級,好金庸,喜武俠;除此之外,對計算機編程有幾分興趣,也有幾分傻氣。學了一點C++和C#語言,有過一些MFC及WinForm編程的經驗。閒時沒事會在舊書市場閒逛,妄想淘得一本程式上的武功秘籍,一舉成為Bill Gates那樣的首富。“到那時候,嘿,嘿……”木木乾笑了幾聲:“一定要開寶馬車去校園門口的雞蛋餅攤買雞蛋餅,或者在街頭坐著一個小馬扎吃熱乾麵,不過是百元大鈔摞起來的小馬扎而已……”
這一次還是在舊書市場閒逛,木木在眾多的“貪官和他的情婦們”、“二十位都市男女情感口述”及“女碩士借精一夜情”等此類雜誌中發現了一本泛黃的書,封面上寫著“葵花”兩字。抽出來一看,才發現下面還有“寶典”二字,完整起來就是傳說中的“葵花寶典”。木木不禁心撲騰撲騰亂跳,再一細看,下面還有一行小字“WPF自學手冊”。以前隱約聽說過WPF,應該是.NET裡面的新技術,看來這本書就是傳說中程式的“武功秘笈”了。舊書都用不了多少錢的,木木丟給了老闆五元錢後,就像做賊一樣將書揣在懷裡回去了。
回到家裡,木木備好了剪刀(自宮而用),又放了一張女友靚照(看看也許會後悔)。閉上眼,顫抖地翻開了第1頁。慢慢睜開眼,上面赫然寫著幾個大字“定價:3.9元”。不禁大罵老闆黑心,新書才3.9元,舊書居然賣給我5元。氣憤之餘不忘翻開書的第2頁,果然有8個大字“欲練神功,必先自功”。木木早就聽說過盜版葵花寶典的故事,於是繼續往下翻,直到最後一頁也沒有“未必成功、無需自宮”這樣的字眼。宮還是不宮?木木左手拿剪刀,右手拿女友靚照,還真是難以抉擇啊。
等等,木木又翻回第2頁,揉揉眼再看了看。是成功的功,而不是自宮的宮。“唉,又是盜版書,‘宮’字還印錯了。依法修煉,肯定不能成功了?”木木心想。於是將剪刀和靚照都拋去,拿著書躺在床上權當小雜誌讀讀。誰知翻到第3頁,該書卻寫到:“你宮了么?若揮刀自宮,請立刻撥打120,興許有救。此功非彼宮,學習WPF需要用功、用功再用功。因此欲練神功,必先自功。”木木騰地一下從床上跳起來,拿著書一屁股坐到書桌邊,看來這的確是一本程式的武功秘笈,而且自功不自宮,相當划算喔。
諸位看到這兒,一定也獲得這本武功秘籍了吧。那么請你們和木木一起走進WPF的世界,一定要“自功”才能學到真正的WPF喔^_^。

目 錄

第一卷 程式江湖
第1章 上路吧,WPF
1.1 江湖前傳 2
1.1.1 微軟的四重門 2
1.1.2 DirectX——無心插柳柳成蔭 4
1.2 WPF來了 4
1.2.1 七十二變 5
1.2.2 WPF的與眾不同之處 8
1.3 接下來做什麼 9
參考文獻 10
第2章 WPF相關工具——十八般兵器
2.1 Microsoft Visual Studio 2010 12
2.1.1 13年間 12
2.1.2 認識Visual Studio 2010 13
2.2 命令行和記事本——小米加步槍 17
2.2.1 編譯簡單的C#程式 18
2.2.2 引用外部程式集 19
2.2.3 編譯WPF應用程式 20
2.3 Microsoft Expression Blend 23
2.3.1 優勢 23
2.3.2 組成 23
2.4 XamlPad 24
2.5 Reflector 26
2.6 接下來做什麼 27
參考文獻 27
第3章 WPF體系結構——藏寶圖
3.1 Windows體系結構 28
3.2 WPF內部結構 30
3.2.1 切入點之一:託管和非託管的界限 30
3.2.2 切入點之二:WPF如何實現繪製 30
3.2.3 切入點之三:WPF類層次結構 33
參考文獻 36
第二卷 心 法
第4章 XAML——反兩儀刀法和正兩儀劍法
4.1 從C#到XAML 39
4.2 命名空間及其映射 43
4.2.1 WPF的命名空間 43
4.2.2 XAML的命名空間 45
4.2.3 其他命名空間 46
4.3 簡單屬性和附加屬性 49
4.3.1 簡單屬性 49
4.3.2 附加屬性 50
4.4 Content屬性 51
4.5 類型轉換器 53
4.5.1 功能 53
4.5.2 自定義類型轉換器 54
4.6 標記擴展 56
4.7 分別使用XAML和C#構建應用程式——刀還是刀,劍還是劍 57
4.7.1 XAML——反兩儀刀法 57
4.7.2 C#——正兩儀劍法 59
4.8 使用XAML和C#構建應用程式——刀劍合璧 60
4.8.1 第1次刀劍合璧 61
4.8.2 完美的刀劍合璧 63
4.8.3 還有一種方法——在XAML中嵌入代碼 67
4.9 接下來做什麼 68
參考文獻 68
第5章 依賴屬性——木木的“汗血寶馬”
5.1 屬性與依賴 69
5.2 認識依賴屬性 72
5.2.1 分辨依賴屬性 72
5.2.2 引入依賴屬性的原因 73
5.2.3 依賴屬性的組成部分 82
5.3 自定義依賴屬性 83
5.3.1 何時需要自定義一個依賴屬性 83
5.3.2 自定義依賴屬性示例 84
5.4 所有規則大排隊 90
5.4.1 按鈕到底是什麼顏色 90
5.4.2 依賴屬性設定優先權列表 91
5.4.3 驗證優先權的示例 92
5.5 附加屬性和“等餐號” 95
5.5.1 如果沒有附加屬性 96
5.5.2 附加屬性的本質 96
5.6 接下來做什麼 97
參考文獻 98
第6章 路由事件——絕情谷底玉蜂飛
6.1 從玉蜂說起,回顧.NET事件模型 99
6.2 路由事件的定義 104
6.3 路由事件的作用 106
6.4 路由事件 108
6.4.1 識別路由事件 108
6.4.2 路由事件的旅行 109
6.5 路由事件示例 113
6.6 接下來做什麼 116
參考文獻 116
第7章 WPF的命令(Command)——明教的聖火令
7.1 木木的寫字板(無Command) 117
7.1.1 簡單的寫字板原型 118
7.1.2 右鍵選單和快捷鍵 120
7.1.3 控制功能狀態 121
7.1.4 小徐的寫字板為何如此簡單 124
7.2 小徐的寫字板(有Command) 126
7.3 Command的作用 128
7.4 WPF的Command模型 129
7.4.1 Command——聖火令 130
7.4.2 Command Sources——明教教主 132
7.4.3 Command Binding——波斯三使 132
7.4.4 Command Target——金毛獅王 133
7.5 接下來做什麼 133
參考文獻 134
第三卷 小有所成
第8章 應用程式視窗——大俠的成長路線
8.1 新建一個應用程式 136
8.1.1 手動創建 136
8.1.2 使用嚮導創建 139
8.2 應用程式及其生命周期 139
8.2.1 小強的成長路線圖 139
8.2.2 應用程式的生命周期 140
8.3 視窗 145
8.3.1 視窗組成 146
8.3.2 視窗的生命周期 146
8.3.3 視窗屬性 149
8.3.4 非規則視窗 155
8.4 接下來做什麼 158
參考文獻 158
第9章 頁面和導航——天罡北斗陣演繹
9.1 導航應用程式演繹 159
9.1.1 第3類應用程式 159
9.1.2 兩種形式 160
9.1.3 4個核心 160
9.2 頁面 161
9.2.1 Page 161
9.2.2 Page的宿主視窗 163
9.3 導航連線 164
9.3.1 超連結 164
9.3.2 通過編程導航 166
9.3.3 其他方式導航 168
9.4 歷史管理 169
9.5 導航和Page的生命周期 171
9.5.1 這一“點擊”的背後 171
9.5.2 Page的生命周期 177
9.6 保留頁面狀態和數據傳遞 177
9.6.1 構建登錄應用程式 179
9.6.2 由前向後傳遞數據 181
9.6.3 WPF固有的頁面狀態保留機制 183
9.6.4 使用依賴屬性保留簡單的頁面狀態信息 183
9.6.5 由後向前傳遞數據方法的PageFunction 185
9.6.6 使用IProvideCustomContentState接口保留複雜的頁面狀態
信息 188
9.7 XAML瀏覽器應用程式 192
9.7.1 將一個基於視窗的導航程式變換成XBAP程式——乾坤大挪移 193
9.7.2 XAML瀏覽器應用程式小結 194
9.8 接下來做什麼 196
參考文獻 196
第10章 布局——藥師的桃花島
10.1 憨木木誤闖桃花寶島 197
10.2 老頑童試解桃花玄機 198
10.2.1 Canvas 199
10.2.2 StackPanel 200
10.2.3 WrapPanel 202
10.2.4 DockPanel 203
10.2.5 Grid 205
10.3 黃島主演繹布局精妙 210
10.3.1 桃樹林的屬性 210
10.3.2 自定義布局 213
10.4 接下來做什麼 216
參考文獻 216
第11章 控制項與Content——北冥神功
11.1 緣起 218
11.2 Content模型及其家族 219
11.2.1 Content模型 219
11.2.2 Content家族 220
11.3 經典控制項 222
11.3.1 Content控制項 222
11.3.2 HeaderedContent控制項 226
11.3.3 Items控制項 230
11.3.4 Range控制項 238
11.4 接下來做什麼 242
參考文獻 243
第四卷 小有所成
第12章 資源——雪山寶藏
12.1 程式集資源 245
12.1.1 資源檔案 246
12.1.2 內容檔案 248
12.1.3 Site of Origin檔案 250
12.2 URI語法 250
12.2.1 WPF中的URI 251
12.2.2 一個全面的URI用法示例 251
12.2.3 WPF中的URI處理順序 253
12.3 邏輯資源 254
12.3.1 靜態資源和動態資源 255
12.3.2 系統資源 257
12.3.3 共享資源 259
12.3.4 通過代碼定義和訪問資源 259
12.3.5 使用ResourceDictionary組織資源 260
12.3.6 在程式集之間共享資源 262
12.4 接下來做什麼 264
參考文獻 265
第13章 樣式和控制項模板——聽香水榭,千變阿朱
13.1 樣式那一點事兒 267
13.1.1 何來樣式 267
13.1.2 基本用法 269
13.1.3 觸發器 270
13.2 模板示例——聽香水榭邊,鬚髮如銀人 273
13.3 模板工作原理——淡淡少女香,侃侃孫三談 276
13.3.1 模板綁定和模板觸發器 279
13.3.2 其他修改 279
13.4 控制項模板的瀏覽器程式——龍鐘老太太,妙齡俏阿朱 280
13.5 樣式、模板和換膚——阿朱技高超,木木向來痴 285
13.5.1 混合使用 285
13.5.2 組織模板資源和更換皮膚 286
13.6 接下來做什麼 289
參考文獻 289
第14章 數據綁定——桃花島軟體公司人員管理系統之始末緣起 290
14.1 人員管理系統 290
14.1.1 瀏覽和修改人員信息(無數據綁定) 290
14.1.2 數據綁定(木木,老婆喊你回家吃飯) 294
14.1.3 使用數據綁定 294
14.2 數據綁定基礎 296
14.2.1 數據綁定模型 296
14.2.2 數據綁定的方向 297
14.2.3 數據綁定的觸發條件 299
14.2.4 綁定數據源的4種方式 301
14.2.5 值轉換 302
14.2.6 數據驗證 303
14.3 高級主題——與數據集合綁定 307
14.3.1 實現一個數據源集合 307
14.3.2 綁定目標和集合 308
14.3.3 數據模板 309
14.3.4 集合視圖 311
14.4 後記 315
14.5 接下來做什麼 315
參考文獻 315
第五卷 紫杉紅燭
第15章 奇妙的二維圖形世界——面壁
15.1 面壁 317
15.2 二維圖形的數學基礎(第一塊石壁) 319
15.2.1 解析度無關 319
15.2.2 坐標系 324
15.2.3 點和向量 326
15.2.4 幾何變換 330
15.2.5 齊次坐標 333
15.2.6 WPF中的對象變換 341
15.3 WPF的二維圖形架構(第二塊石壁) 342
15.3.1 立即模式和保留模式 343
15.3.2 WPF二維圖形體系結構 350
15.3.3 WPF二維圖形的重要元素 352
15.3.4 書架上到底放什麼書 355
15.4 顏色和畫刷(第一本書) 356
15.4.1 顏色 356
15.4.2 畫刷 359
15.4.3 使用畫刷製作特效 369
15.5 Shape(第二本書) 372
15.5.1 簡單的Shape元素 373
15.5.2 線型、線帽、線的連線和填充規則 376
15.5.3 放置並調整Shape大小 380
15.5.4 Path 382
15.6 Geometry(第三本書) 383
15.6.1 理解Geometry 383
15.6.2 簡單的Geometry類型 384
15.6.3 GeometryGroup和CombineGeometry 386
15.6.4 PathGeometry和StreamGeometry 387
15.6.5 路徑描述語言 394
15.7 Drawing和Visual 395
15.7.1 Drawing及其派生類 395
15.7.2 Drawing類型 396
15.7.3 Visual 400
15.8 接下來做什麼(面壁之後) 406
參考文獻 406
第16章 動畫——降龍的最後一掌
16.1 七公和他的降龍十八掌 407
16.2 WPF實現動畫的方式 408
16.2.1 基於計時器的動畫 408
16.2.2 基於幀的動畫 410
16.2.3 基於屬性的動畫 411
16.3 WPF動畫的基本知識 411
16.3.1 前提條件 411
16.3.2 動畫類的類層次結構 412
16.3.3 時間線的基本行為 414
16.4 3種基本類型動畫 422
16.4.1 From/To/By類型動畫 422
16.4.2 KeyFrame類型動畫 423
16.4.3 Path類型動畫 428
16.5 動畫的互動控制 431
16.6 後記:降龍的最後一掌 432
16.7 接下來做什麼 434
參考文獻 434
第17章 WPF3D圖形
17.1 WPF3D引言 435
17.1.1 WPF3D圖形的作用 435
17.1.2 用2D圖形產生立體感 437
17.1.3 WPF3D類概覽 440
17.2 WPF3D數學基礎 444
17.2.1 坐標系 444
17.2.2 空間點 445
17.2.3 向量 446
17.2.4 矩陣和幾何變換 451
17.3 從3D物體到2D圖形 454
17.3.1 3個坐標系 455
17.3.2 Camera對象 457
17.3.3 坐標變換 462
17.4 基本幾何體 471
17.4.1 使用直線
ScreenSpaceLines3D 471
17.4.2 構建立方體 473
17.4.3 構建球面 475
17.5 光源和材質 479
17.5.1 光源 479
17.5.2 著色和法線 483
17.5.3 計算DiffuseMaterial和表面顏色 487
17.5.4 其他材質 488
17.5.5 紋理 490
17.6 動畫和互動 493
17.6.1 動畫 493
17.6.2 互動 496
17.7 接下來做什麼 500
參考文獻 500
第18章 文本和文檔——從黑風雙煞的“練門”說起
18.1 從TextElement說起 502
18.1.1 文本 502
18.1.2 TextElement 503
18.1.3 TextElement的屬性 504
18.2 TextBlock控制項 509
18.2.1 與文本相關的屬性 509
18.2.2 文本屬性 513
18.2.3 其他簡單的文本控制項 515
18.3 理解WPF的文檔 515
18.3.1 ContentElement 515
18.3.2 流文檔模型 516
18.3.3 固定文檔 523
18.4 文檔控制項 524
18.4.1 固定文檔的瀏覽控制項 524
18.4.2 流文檔的瀏覽控制項 526
18.4.3 注釋功能 528
18.5 實現一個簡單的文檔瀏覽器 531
18.5.1 應用程式組成 531
18.5.2 打開一個流文檔 532
18.5.3 另外儲存為不同格式的檔案 535
18.5.4 實現縮略圖功能 543
18.5.5 實現書籤和標註功能 545
18.6 接下來做什麼 550
參考文獻 550
第六卷 華山之巔
第19章 互操作——“小無相功”
19.1 為什麼需要互操作? 553
19.2 互操作的幾種類型 553
19.3 Windows Forms和WPF 554
19.3.1 對話框 554
19.3.2 在同一個視窗中混合WPF和WinForm內容 558
19.4 在Win32中嵌入WPF內容 564
19.4.1 現有的Win32程式 564
19.4.2 使用WPF製作鐘錶 568
19.4.3 將WPF內容嵌入在Win32程式中 569
19.5 在WPF中嵌入Win32內容 574
19.5.1 一個Win32的DLL工程 574
19.5.2 使用HwndHost 577
19.5.3 支持鍵盤導航 580
19.6 接下來做什麼 585
參考文獻 585
第20章 自定義控制項——出手無招,何招可破
20.1 風老前輩登場 586
20.2 用RadioButton實現紅綠燈 588
20.3 何時自定義控制項? 590
20.3.1 不要被控制項的外觀所欺騙,
要考慮其內在本質 590
20.3.2 Content模型、模板和附加屬性 591
20.3.3 使用附加屬性擴展現有控制項 592
20.4 自定義控制項 598
20.4.1 自定義控制項的3個層次 599
20.4.2 從UserControl開始 600
20.5 無外觀控制項 603
20.5.1 無形才是有形 603
20.5.2 定義命令 605
20.5.3 在主題中定義控制項外觀 606
20.6 接下來做什麼 609
參考文獻 609
第七卷 志向無限大
第21章 木木能行,我也行
葵花寶典的真正秘密 611
寫給大學生 612

相關詞條

熱門詞條

聯絡我們