WPF学习一--概述
Q??Q:408365330???? E-Mail:egojit@qq.com
自從做IT“出道”以來接觸最多的就是Web開發,也就是ASP.NET,做過ASP.MET的 WebForm和MVC。畢竟B/S架構是個趨勢。也有一段時間在做WinFrom。最近學習WPF。
很多年以來做Windows開發的用以下兩個以來已久的創建用戶界面:
1.User32 該部分許多元素提供我們熟悉的Windows外觀(了解Window API的可能更清晰點)。
2.GDI/GDI 大家都很了解,改部分為渲染簡單形狀,文本以及圖像做支持。也就是提供了一些簡單的繪圖支持。
不管我們過去用到到的MFC還是.NET的WinForm從本質上講還是最User32和GDI/GDI+的分裝,只不過分裝的更好一點,讓我們省去了很多細節的關注。讓我們更容易寫出一個Windows程序。當然這些框架不可避免的被老思想和老方法局限這。
同時Microsoft針對以上兩者的限制,為我們提供了一個解決方案,也就是我們比較熟悉的DirectX,它在設計上注重速度,DirectX提供了更加復雜的紋理映射和特殊效果和3D硬件加速效果。因此它幾乎不用于Windows窗體開發,而是用于游戲開發。但是重點是WPF改變了這一現狀。WPF的底層不在是GDI/GDI+,而是DirectX,所以WPF元素不管是按鈕還是文本都是通過DirectX管線去完成的,所以即使是普通程序也可以有很炫的效果,例如半透明和反鋸齒。當然這讓我們也享受到了DirectX的好處,在渲染圖形時盡可能的將工作交給GPU去做(顯卡專用處理器)。
我們需要注意:WPF充分利用顯卡,所以如果顯卡驅動是個老掉牙的驅動,那肯定是達不到我們想要的渲染效果,因此WPF也不能為我們提供硬件加速功能。當然在Window7中WPF提供很好的性能(WPF在vista已前版本的系統中不是不能工作,只是效率沒有vista及以上的操作系統中高)。
一.都說WPF是革命,革命就得有翻天覆地的變化。
1.類似Web的布局模型(和Android的布局文件很想)
2.豐富的繪圖模型
3.豐富的文本模型
4.動畫作為WPF的固有部分
5.更好支持視頻和音頻媒體
6.支持樣式和模板
7.命令:大家知道在菜單和工具欄觸發“打開”按鈕本質上命令是沒有區別的。現在通過抽象們可以在特定的位置定義程序命令并將它鏈接到多個按鈕上去。
8.通過聲明的方式定義用戶界面XAML
9.基于頁面的應用程序
10.Silverlight “基于瀏覽器的WPF”
當然這些是革新,作為新技術如果只是革新,沒有繼承。那么是無用的。畢竟不可能從原始社會到共產主義。WPF為老式的Win32程序進行了集成。當然不是WPF本質上通過DirectX去渲染,那么我們就可以丟棄DirectX(DirectX開發起來太繁瑣和麻煩)。即使再繁瑣作為游戲領域的高效率要求還是直接上DirectX比較妥當。最大限度的利用顯卡我們還是需要原始的DirectX編寫更低層次的代碼。
二.WPF是分辨率無關性的。
三.WPF體系結構
1)PersentationFramework.dll:WPF頂層的抽象,包括窗體,面板,類型等類型。
2)PresentationCore.dll :包含基礎類型,包括UIElement類和Visual類。所有形狀類和控件類都基礎自這個類
3)WindowsBase.dll :這里包含更多基本元素
4)milcore.dll :WPF渲染系統的核心
5)WindowsCodecs.dll :提供圖像支持的低級API
6)Direct3D : WPF所有圖形都由它渲染
7)User32 :負責程序占用桌面哪一部分,不再負責渲染通用控件
看了這么多,我相信你覺得研究WPF了吧!:)
版權:歸博客園和Egojit所有,轉載請標明出處。轉載于:https://www.cnblogs.com/egojit/archive/2013/05/31/3110573.html
總結
以上是生活随笔為你收集整理的WPF学习一--概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ios不响应presentModalVi
- 下一篇: hud 4455 Substrings