WPF簡介與基礎(chǔ)開發(fā)
一、WPF簡介
WPF:WPF即Windows Presentation Foundation,翻譯為中文“Windows呈現(xiàn)基礎(chǔ)”,是微軟推出的基于Windows Vista的用戶界面框架,屬于.NET Framework 3.0的一部分。它提供了統(tǒng)一的編程模型、語言和框架,真正做到了分離界面設(shè)計(jì)人員與開發(fā)人員的工作;同時(shí)它提供了全新的多媒體交互用戶圖形界面。
二、WPF特點(diǎn)
1、統(tǒng)一的編程模型
WPF提供的編程模型統(tǒng)一普通控件、語音、視頻、文檔3D等技術(shù),這些媒體類型能夠統(tǒng)一協(xié)調(diào)工作,降低了我們的學(xué)習(xí)成本。
2、與分辨率無關(guān)
WPF是基于矢量繪圖的,因此它產(chǎn)生的圖形界面能夠支持各種分辨率的顯示設(shè)備,而不會(huì)像WinForm等在高分辨率的現(xiàn)實(shí)設(shè)備上產(chǎn)生鋸齒。
3、硬件加速技術(shù)
WPF是基于Direct3D創(chuàng)建。在WPF應(yīng)用程序中無論是2D還是3D的圖形或者文字內(nèi)容都會(huì)被轉(zhuǎn)換為3D三角形、材質(zhì)和其他Direct3D對(duì)象,并由硬件負(fù)責(zé)渲染,因此它能夠更好的利用系統(tǒng)的圖像處理單元GPU,從硬件加速中獲得好處。
4、聲明式編程
WPF引入一種新的XAML語言(Extensible Application Markup Language)來開發(fā)界面。使用XAML語言將界面開發(fā)以及后臺(tái)邏輯開發(fā)很好的分開,降低了前后臺(tái)開發(fā)的耦合度,使用戶界面設(shè)計(jì)師與程序開發(fā)者能更好的合作,降低維護(hù)和更新的成本。
5、易于部署
WPF除了可以使用傳統(tǒng)的Windows Installer以及ClickOnce方式來發(fā)布我們的桌面應(yīng)用程序之外,還可以將我們的應(yīng)用程序稍加改動(dòng)發(fā)布為基于瀏覽器的應(yīng)用程序。
三、常用的輔助開發(fā)工具
Microsoft Expression Blend:簡稱(Blend)它是WPF UI界面設(shè)計(jì)師必備工具,利用它我們可以設(shè)計(jì)出非常精美的UI界面,以及界面的樣式、模板、動(dòng)畫等資源。
下載地址:
Blend:https://msdn.microsoft.com/zh-cn/(搜索Blend)
四、開發(fā)基礎(chǔ)
1、新建WPF應(yīng)用程序
選擇菜單->“文件”->“新建”->“項(xiàng)目”,在“新建項(xiàng)目”對(duì)話框中選擇WPF應(yīng)用程序,修改名稱為WpfDemo,然后點(diǎn)擊“確定”按鈕,如下圖所示:
2、生成的文檔結(jié)構(gòu)圖如下:
3、在App.xaml中的“StartupUri”屬性可以指定項(xiàng)目運(yùn)行時(shí)的啟動(dòng)窗體。如下圖中“StartupUri=”MainWindow.xaml””,還可以定義我們需要的系統(tǒng)資源以及引入程序集等
如下圖所示:
五、XAML語言
XAML語言:是微軟公司為構(gòu)建應(yīng)用程序用戶界面而創(chuàng)建的一種新的“可擴(kuò)展應(yīng)用程序標(biāo)記語言”,提供了一種便于擴(kuò)展和定位的語法來定義和程序邏輯分離的用戶界面。
特點(diǎn):
定義應(yīng)用程序的界面元素
顯示的聲明WPF資源(樣式、模板、動(dòng)畫等)
可擴(kuò)展性(自定義UI控件)
集中關(guān)注于界面的設(shè)計(jì)和實(shí)現(xiàn)
六、XAML命名空間以及命名空間映射到程序集
1、XAML命名空間
開發(fā)語言會(huì)將常用功能以類的形式封裝,開發(fā)人員根據(jù)自己的業(yè)務(wù)需求,也會(huì)封裝滿足自身業(yè)務(wù)需求的類,如果有序組織這些類?一方面,便于開發(fā)人員準(zhǔn)確調(diào)用;另一方面,編譯器可以有效識(shí)別具有相同命名的類,就引入了命名空間,簡單的說,是通過類似樹狀結(jié)構(gòu)來組織各種類,是一種較為有效的類名排列方式。
而XAML和.NET其他語言一樣,也是通過命名空間有效組織起XAML內(nèi)部的相關(guān)元素類,這里的命名空間與.NET中的命名空間不是一一對(duì)應(yīng)的,而是一對(duì)多,一眼望去,都是“網(wǎng)址”,這里的網(wǎng)址,是遵循XAML解析器標(biāo)準(zhǔn)的命名規(guī)則,而不是真正的網(wǎng)址(在IE中根本打不開)。
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"對(duì)應(yīng)一些與XAML語法和編譯相關(guān)的CLR名稱空間,例如
<Style x:key="buttonMouseOver" TargetType="{x:Type Button}">
這里的xmlns和xmlns:x的區(qū)別在于x作為別名,在應(yīng)用時(shí),以前綴形式出現(xiàn),而xmlns作為默認(rèn)命名空間,不使用前綴標(biāo)識(shí)的元素,來自該命名空間。
XAML命名空間的語法:
xmlns[:可選映射前綴]="命名空間描述"
注意:沒有加可選映射前綴的xmlns是WPF默認(rèn)的命名空間,一個(gè)xaml文件只能有一個(gè)默認(rèn)的命名空間
一個(gè)完整的xaml文件,必須具備兩個(gè)命名空間。
2、自定義類或程序集映射語法
xmlns[:必選映射前綴]="clr-namespace:[命名空間];assembly=[程序集名稱]"
在同一個(gè)解決方案下面新建一個(gè)“”的項(xiàng)目,命名為“WPFUserControl”,在項(xiàng)目的屬性里面修改默認(rèn)的命名空間為:MyControl.WpfUserControl,添加兩個(gè)TextBlock和兩個(gè)TextBox,如圖所示:
在第一個(gè)項(xiàng)目里面引用新建的用戶控件,注意:首先要添加新建用戶控件庫的引用。
3、映射到當(dāng)前程序集的語法
xmlns[:必選映射前綴]="clr-namespace:[命名空間]"
在當(dāng)前項(xiàng)目下面新建一個(gè)用戶控件,添加兩個(gè)TextBlock和兩個(gè)TextBox,如下圖所示:
在MainWindow.xaml里面調(diào)用新建的用戶控件,需要引用命名空間:
到此這篇關(guān)于WPF簡介與基礎(chǔ)開發(fā)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Asp.net SignalR應(yīng)用并實(shí)現(xiàn)群聊功能
這篇文章主要為大家分享了Asp.net SignalR應(yīng)用并實(shí)現(xiàn)群聊功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04在.NET使用JSON作為數(shù)據(jù)交換格式實(shí)例演示
JSON(JavaScript Object Notation)是一種輕量級(jí)輕量級(jí)的數(shù)據(jù)交換格式,并且它獨(dú)立于編程語言,接下來為大家介紹下使用JSON作為數(shù)據(jù)交換格式在.net中的應(yīng)用2013-03-03實(shí)例講解.NET中資源文件的創(chuàng)建與使用
資源文件顧名思義就是存放資源的文件。資源文件在程序設(shè)計(jì)中有著自身獨(dú)特的優(yōu)勢,他獨(dú)立于源程序,這樣資源文件就可以被多個(gè)程序使用2011-12-12ASP.NET實(shí)現(xiàn)根據(jù)URL生成網(wǎng)頁縮略圖的方法
這篇文章主要介紹了ASP.NET實(shí)現(xiàn)根據(jù)URL生成網(wǎng)頁縮略圖的方法,結(jié)合實(shí)例較為詳細(xì)的分析了asp.net生成網(wǎng)頁縮略圖的詳細(xì)實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下2015-11-11ASP.NET Core擴(kuò)展庫之Http日志的使用詳解
這篇文章主要介紹了ASP.NET Core擴(kuò)展庫之Http日志的使用詳解,幫助大家更好的理解和學(xué)習(xí)使用.net技術(shù),感興趣的朋友可以了解下2021-04-04C#圖片截取壓縮(百分比壓縮/大小壓縮)實(shí)現(xiàn)代碼
為了娛樂寫了個(gè)截取圖片和壓縮圖片你的小工具:按照百分比壓縮/制定大小壓縮等等,感興趣的朋友可以了解下啊,希望本文對(duì)你學(xué)些c#圖片知識(shí)有所幫助2013-01-01asp.net 獲取機(jī)器硬件信息(cpu頻率、磁盤可用空間、內(nèi)存容量等)
asp.net 收集機(jī)器硬件信息的相關(guān)代碼片斷(cpu頻率、磁盤可用空間、內(nèi)存容量……)2008-11-11