網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
一、WPF簡(jiǎn)介
WPF:WPF即Windows Presentation Foundation,翻譯為中文“Windows呈現(xiàn)基礎(chǔ)”,是微軟推出的基于Windows Vista的用戶界面框架,屬于.NET Framework 3.0的一部分。它提供了統(tǒng)一的編程模型、語(yǔ)言和框架,真正做到了分離界面設(shè)計(jì)人員與開(kāi)發(fā)人員的工作;同時(shí)它提供了全新的多媒體交互用戶圖形界面。
二、WPF特點(diǎn)
1、統(tǒng)一的編程模型
WPF提供的編程模型統(tǒng)一普通控件、語(yǔ)音、視頻、文檔3D等技術(shù),這些媒體類型能夠統(tǒng)一協(xié)調(diào)工作,降低了我們的學(xué)習(xí)成本。
2、與分辨率無(wú)關(guān)
WPF是基于矢量繪圖的,因此它產(chǎn)生的圖形界面能夠支持各種分辨率的顯示設(shè)備,而不會(huì)像WinForm等在高分辨率的現(xiàn)實(shí)設(shè)備上產(chǎn)生鋸齒。
3、硬件加速技術(shù)
WPF是基于Direct3D創(chuàng)建。在WPF應(yīng)用程序中無(wú)論是2D還是3D的圖形或者文字內(nèi)容都會(huì)被轉(zhuǎn)換為3D三角形、材質(zhì)和其他Direct3D對(duì)象,并由硬件負(fù)責(zé)渲染,因此它能夠更好的利用系統(tǒng)的圖像處理單元GPU,從硬件加速中獲得好處。
4、聲明式編程
WPF引入一種新的XAML語(yǔ)言(Extensible Application Markup Language)來(lái)開(kāi)發(fā)界面。使用XAML語(yǔ)言將界面開(kāi)發(fā)以及后臺(tái)邏輯開(kāi)發(fā)很好的分開(kāi),降低了前后臺(tái)開(kāi)發(fā)的耦合度,使用戶界面設(shè)計(jì)師與程序開(kāi)發(fā)者能更好的合作,降低維護(hù)和更新的成本。
5、易于部署
WPF除了可以使用傳統(tǒng)的Windows Installer以及ClickOnce方式來(lái)發(fā)布我們的桌面應(yīng)用程序之外,還可以將我們的應(yīng)用程序稍加改動(dòng)發(fā)布為基于瀏覽器的應(yīng)用程序。
三、常用的輔助開(kāi)發(fā)工具
Microsoft Expression Blend:簡(jiǎn)稱(Blend)它是WPF UI界面設(shè)計(jì)師必備工具,利用它我們可以設(shè)計(jì)出非常精美的UI界面,以及界面的樣式、模板、動(dòng)畫等資源。
下載地址:
Blend:https://msdn.microsoft.com/zh-cn/(搜索Blend)
四、開(kāi)發(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語(yǔ)言
XAML語(yǔ)言:是微軟公司為構(gòu)建應(yīng)用程序用戶界面而創(chuàng)建的一種新的“可擴(kuò)展應(yīng)用程序標(biāo)記語(yǔ)言”,提供了一種便于擴(kuò)展和定位的語(yǔ)法來(lái)定義和程序邏輯分離的用戶界面。
特點(diǎn):
定義應(yīng)用程序的界面元素
顯示的聲明WPF資源(樣式、模板、動(dòng)畫等)
可擴(kuò)展性(自定義UI控件)
集中關(guān)注于界面的設(shè)計(jì)和實(shí)現(xiàn)
六、XAML命名空間以及命名空間映射到程序集
1、XAML命名空間
開(kāi)發(fā)語(yǔ)言會(huì)將常用功能以類的形式封裝,開(kāi)發(fā)人員根據(jù)自己的業(yè)務(wù)需求,也會(huì)封裝滿足自身業(yè)務(wù)需求的類,如果有序組織這些類?一方面,便于開(kāi)發(fā)人員準(zhǔn)確調(diào)用;另一方面,編譯器可以有效識(shí)別具有相同命名的類,就引入了命名空間,簡(jiǎn)單的說(shuō),是通過(guò)類似樹(shù)狀結(jié)構(gòu)來(lái)組織各種類,是一種較為有效的類名排列方式。
而XAML和.NET其他語(yǔ)言一樣,也是通過(guò)命名空間有效組織起XAML內(nèi)部的相關(guān)元素類,這里的命名空間與.NET中的命名空間不是一一對(duì)應(yīng)的,而是一對(duì)多,一眼望去,都是“網(wǎng)址”,這里的網(wǎng)址,是遵循XAML解析器標(biāo)準(zhǔn)的命名規(guī)則,而不是真正的網(wǎng)址(在IE中根本打不開(kāi))。
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"對(duì)應(yīng)一些與XAML語(yǔ)法和編譯相關(guān)的CLR名稱空間,例如
這里的xmlns和xmlns:x的區(qū)別在于x作為別名,在應(yīng)用時(shí),以前綴形式出現(xiàn),而xmlns作為默認(rèn)命名空間,不使用前綴標(biāo)識(shí)的元素,來(lái)自該命名空間。
XAML命名空間的語(yǔ)法:
xmlns[:可選映射前綴]="命名空間描述"
注意:沒(méi)有加可選映射前綴的xmlns是WPF默認(rèn)的命名空間,一個(gè)xaml文件只能有一個(gè)默認(rèn)的命名空間
一個(gè)完整的xaml文件,必須具備兩個(gè)命名空間。
2、自定義類或程序集映射語(yǔ)法
xmlns[:必選映射前綴]="clr-namespace:[命名空間];assembly=[程序集名稱]"
在同一個(gè)解決方案下面新建一個(gè)“”的項(xiàng)目,命名為“WPFUserControl”,在項(xiàng)目的屬性里面修改默認(rèn)的命名空間為:MyControl.WpfUserControl,添加兩個(gè)TextBlock和兩個(gè)TextBox,如圖所示:
在第一個(gè)項(xiàng)目里面引用新建的用戶控件,注意:首先要添加新建用戶控件庫(kù)的引用。
3、映射到當(dāng)前程序集的語(yǔ)法
xmlns[:必選映射前綴]="clr-namespace:[命名空間]"
在當(dāng)前項(xiàng)目下面新建一個(gè)用戶控件,添加兩個(gè)TextBlock和兩個(gè)TextBox,如下圖所示:
在MainWindow.xaml里面調(diào)用新建的用戶控件,需要引用命名空間:
原文鏈接:https://www.cnblogs.com/dotnet261010/p/6275821.html
相關(guān)推薦
- 2023-12-13 pyinstaller打包exe時(shí)報(bào)錯(cuò)問(wèn)題記錄[makespec options not valid
- 2022-11-08 Python?Pandas教程之series?上的轉(zhuǎn)換操作_python
- 2022-05-18 解決iOS驗(yàn)證碼顯示在左邊問(wèn)題_IOS
- 2022-04-24 C語(yǔ)言的abs()函數(shù)和div()函數(shù)你了解嗎_C 語(yǔ)言
- 2024-03-24 k8s 搭建基于session模式的flink集群
- 2022-06-16 Python基礎(chǔ)之函數(shù)與控制語(yǔ)句_python
- 2021-11-13 Gateway網(wǎng)關(guān)工作原理及使用方法_其它綜合
- 2022-11-20 Golang交叉編譯之跨平臺(tái)編譯使用詳解_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支