· 1.開篇前言 · 2.内容提綱 · 3.系列安排 · 4.開發工具 · 5.參考資料 · 6.面試問題 · 7.關于前景 · 8.效果展示 · 9.本文總結
· 1. 開篇有益 · 2. WPF基礎(曆史、版本、結構、架構) · 3. WPF介紹 、用WinForm和WPF實作同一個例子的案例。 · 4. Application、window、多線程、XAML、邏輯樹與可視樹及内容模型 · 5. 使用面闆做布局(幾種布局控件的XAML及CS代碼,綜合布局等) · 6. 依賴屬性、附加屬性(基本、繼承、中繼資料) · 7. 路由事件、附加事件 · 8. 指令 · 9. WPF控件分類介紹與使用技巧(ContentControl、HeaderedContentControl…… Decorator) · 10. 尺寸縮放、定位與變換元素 · 11. 資源 · 12. 資料綁定(基本、值轉換、驗證、集合的篩選、排序、分組、主從、資料提供者) · 13. 樣式 · 14. 模闆 · 15. 多語言、皮膚和主題 · 16. 2D圖形 · 17. 3D圖形 · 18. 動畫(幾種動畫的應用) · 19. 音頻、視訊、語音 · 20. 文檔、列印、報表 · 21. 使用者控件和自定義控件 · 22. Win32、Windows Form以及ActiveX之間的互用性 · 23. 建構并部署應用程式(ClickOnce部署、微軟setup /InstallShield+自動更新元件) · 24. WPF的模式講解及執行個體(MVC Demo) · 25. WPF的模式講解及執行個體(MVP Demo) · 26. WPF的模式講解及執行個體(MVVM Demo) · 27. 性能優化(WPF項目的瓶頸) · 28.一個完整WPF項目(普通架構版) · 39. 一個完整WPF項目(MVVM架構版) · 30. WPF 4.0新功能
1. Programming Windows Presentation Foundation <a href="http://www.amazon.com/Programming-Windows-Presentation-Foundation-Chris/dp/0596101139/sr=8-2/qid=1164814449/ref=pd_bbs_2/104-6804148-3392750?ie=UTF8&s=books">http://www.amazon.com/Programming-Windows-Presentation-Foundation-Chris/dp/0596101139/sr=8-2/qid=1164814449/ref=pd_bbs_2/104-6804148-3392750?ie=UTF8&s=books</a> 這本書出得很早,在學WPF之初就是這本書和MSDN作為教材,優點:書中講解的語言淺顯易懂并且講解的順序和思路也很清晰,内容也是面面俱到,例 子也舉得很恰當。缺點是講得很簡單,稍偏向于入門書籍;書中的理論和例子都是針對于WPF的測試版,是以和正式的版本有一些出入,你會發現從書中拷貝下來 的例子在程式中不能運作,這個你也不要見怪,隻要能明白原理就行。 2. Windows Presentation Foundation Unleashed (WPF) (Unleashed) <a href="http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/sr=8-5/qid=1164814449/ref=pd_bbs_sr_5/104-6804148-3392750?ie=UTF8&s=books">http://www.amazon.com/Windows-Presentation-Foundation-Unleashed-WPF/dp/0672328917/sr=8-5/qid=1164814449/ref=pd_bbs_sr_5/104-6804148-3392750?ie=UTF8&s=books</a> 這本書是WPF正式版出來以後出版的,是以和上一本比起來就有很大的優勢,并且講的内容也比上一本詳細,是以在很長一段時間,除了MSDN,它就成 了很權威的教材。在閱讀的時候雖然沒有Programming Windows Presentation Foundation那麼輕松,但同時這裡面的例子會給你帶來很強的成就感。 3. Applications = Code + Markup: A Guide to the Microsoft Windows Presentation Foundation <a href="http://www.amazon.com/Applications-Code-Markup-Presentation-Foundation/dp/0735619573/sr=8-1/qid=1164814449/ref=pd_bbs_1/104-6804148-3392750?ie=UTF8&s=books">http://www.amazon.com/Applications-Code-Markup-Presentation-Foundation/dp/0735619573/sr=8-1/qid=1164814449/ref=pd_bbs_1/104-6804148-3392750?ie=UTF8&s=books</a> 這本書是Adam Nathan寫的,Adam是WPF Team的核心成員,也是WPF的專家,是以裡面有很多的技術内幕和使用技巧都值得我們學習和操練,但我一直沒有堅持看完,原因很簡單,這本書不太适合入 門,是以當時就沒有選擇這一本書,到學會了WPF以後,又經常關顧于國外的各大社群和論壇,上面很多内容可以解除你對WPF學習和使用中的疑問,是以它就 一直擱置到了一邊,直到寫這個系列之前才翻完大半。 4,WPF4是大家都期待的,因為前面幾個版本存在着一些問題,如性能優化不上去、某些特性不支援等原因。那麼WPF4的公布,讓很多人都比較欣 喜,如下第一排3本就是針對WPF4(VS2010)的,是以有興趣的同仁也可以去找相關的資源。 <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0023.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0043.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0063.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0083.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0103.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image0123.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/clip_image01411.jpg"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/image5.png"></a> <a href="http://images.cnblogs.com/cnblogs_com/zenghongliang/WindowsLiveWriter/fdfd_D387/image6.png"></a> 當然國内也有一些書籍可以參考,如微軟經典紅皮書對WPF的講解可以作為入門學習,還有WPF揭秘,雖說有一些翻譯上的小錯誤,但是整體還是可以 的。
<b>大部分的應用程式都會使用如下配置和工具開發:</b> CPU:2.40GHz 記憶體2G 作業系統:Windows XP+SP3英文版 開發工具:Visual Studio 2008+SP1英文版 Expression Design 3 Expression Blend 3 Expression Encoder 3 <b>由于最近用上了一台新機器,也可能會使用它做某些開發:</b> CPU:i7四核 2.8GHz 記憶體:4G 硬碟:1T 顯示卡:GTX260 高清2G 顯示器:24高清 作業系統:Windows 7 Professional 開發工具:Visual Studio 2010 Expression Design 4 Expression Blend 4 Expression Encoder 4
關于面試這個問題,每個公司都會有自己的面試要求,尤其是美國和印度對WPF的重視程度,讓WPF的應用逐漸變得廣泛。面試題目也變得多了起來,之前承擔 了一些WPF的面試工作,是以收集、整理和寫了一些面試題目,以供大家參考,由于是自己對這方面的一些看法,是以有錯誤的地方也請大家見諒,對每個面試 者,我覺得都要以尊敬的态度,不管技術如何,不管學曆如何,人都有他擅長的一方面。同時你的了解和他的了解可能各有千秋,也不要把某些觀點強加于人而傲視 别人。是以我覺不管是面試者或者是被面試者,都要懷着謙虛和尊敬别人的态度。 <b>初級工程師</b> 較強.NET 2.0 基礎知識& 願意學習新技術 解釋什麼是依賴屬性,它和以前的屬性有什麼不同?為什麼在WPF會使用它? 什麼是樣式(Style)? 什麼是模闆(template)? 綁定(Binding )的基礎用法 解釋這幾個類的作用及關系: Visual, UIElement, FrameworkElement, Control 視覺樹vs 邏輯樹? 屬性變更通知(INotifyPropertyChange 和ObservableCollection) ResourceDictionary UserControls 事件的三種方式(冒泡、直接、隧道) <b>中級工程師</b> Routed Events(路由事件) & Commands (指令) 綁定詳解(包括綁定到單一屬性、實體、集合、值轉換、觸發機制、驗證等) 怎樣布局一個漂亮的UI(你們以前的項目是怎麼做的?) WPF和之前的技術互動(WPF/WinForms) animations 、storyboarding ClickOnce 部署(優點和缺點)或者是自己通過微軟setup/InstallShield+自己的自動更新元件。 樣式、主題和觸發器 自定義控件 怎樣才能工作線程更新UI? <b>進階工程師</b> 什麼是attached behavior(附加行為或者附加事件)? PRISM,CAL & CAG等等架構,是否使用過?你們是怎麼用的?沒有使用的話,解釋一下自己的開發模式和架構。 WPF 3D和動畫的應用(是否使用過?用過哪些?)。 Silverlight和WPF的異同。 怎麼開發自定義控件?可以簡單介紹一下自己開發的控件。 你之前的WPF項目開發流程是怎樣的? 三種開發模式(MVVM/MVP/MVC)的了解。 WPF的性能調整(你是怎麼優化WPF性能的?) 聊聊你做WPF的一些經驗和體會。
關于WPF的前景,我不想做過多的介紹,有很多人已經對這方面做了很深入的研究,那麼我們就可以做一下簡單的總結: 由于WPF帶來了很多優秀的功能和特性: 1.超強的使用者體驗; 2.簡單便捷的部署方式(易于更新更新); 3.更簡便的程式設計方式。 4,實作絢麗效果比較簡單。 是以在以下幾個方面得到了很廣泛的應用: 1.企業應用系統(主要做一些管理系統,國内已經很多公司在使用了); 2.一些Silverlight目前很難達到的效果同時又要求能從網絡 浏覽到(如Asahiyama Zoo (日本北海道旭山動物園)) 3.桌面應用程式(如雅虎推出即時通訊軟體和QQ等)。 4,一些 對效果要強較高應用的産品 WPF正因為有那麼多優秀的特性和功能并且微軟一直在這方面努力,我們相信它一定會帶來一場C/S使用者程式的革命。對這個應用,我也曾專門了解過,在國内 現在很多公司都在對WinForm進行更新到WPF,在國外如美國和印度等國家,對WPF的使用也逐漸普遍起來。上周公司首席科學家請客到新加坡一家六星 級酒店吃飯,我以項目組附帶的形式很榮幸也被邀請,旁邊剛好是一個印度的Architect,我也順便問了他們國家對Windows azure、WPF和Silverlight等技術的應用,發現他們國家對這些技術應用得很早并且也形成了自己的一些成熟體系。最近公司做的項目有很多以 色列人來示範他們做的智能系統(UI用WPF實作,智能撲捉用攝像頭,這樣人站在電視機前面就可以用自己的身體玩很多體驗,比如你可以真實體驗三維遊戲、 你可以用你的身體直接做很多網絡裡的事情),他們比我們現在做的系統(我們的系統是用WPF做UI,然後在電視上通過藍牙和遙控器實作點播網絡視訊、遊戲 和新聞等)進階很多,同時也讓我們看到他們對這方面的研發能力。是以相信WPF一定可以逐漸流行起來,就讓我們拭目以待。
上面談了這麼多WPF的東西,有些沒有接觸過WPF的同仁也許會問:WPF到底能實作什麼樣的效果?WPF在哪些公司用到過?WPF究竟能不能應用于企業 開發,那麼我這裡就簡單收集了一些WPF的一些效果圖和一些商業運用産品截圖,希望大家看到以後,能對WPF有一個全面的了解。 <b>WPF部分例子的效果圖:</b> <a></a> <b>WPF企業使用案例(部分案例介紹來自網絡):</b> AMD Live : AMD為提升PC使用者數字娛樂體驗的新平台,一個結構化、可視化的線上照片、音樂、視訊的播放軟體 從這個界面 來看真的是非常強大,娛樂性已經與蘋果系統幾乎無異。 <a href="http://www.softshome.com/uploads/userup/0809/0122024V123.jpg"></a> Chosun Daily iReader :基于WPF技術做的北韓日報閱讀器,可以看到高保真影像。 Entellium Rave:中小企業CRM提供商 Entellium 專供中小企業使用的 CRM系統,漂亮的界面與複雜内容的結合,邏輯層與表現層的分離使得這種平衡得以實作。 WPF概念版QQ <b> </b> <b></b> Yahoo:雅虎推出即時通訊軟體 功能很強大并且還可以實作很多自定義操作。 Asahiyama Zoo (日本北海道旭山動物園)。 是微軟和日本北海道旭山動物園共同制作的動物園虛拟體驗工具,你可以 通過它對動物園進行虛拟體驗,實作了很好的效果。
本文轉自KnightsWarrior51CTO部落格,原文連結: http://blog.51cto.com/knightswarrior/343871 ,如需轉載請自行聯系原作者