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