1.狂妄的WPF
相對傳統的Windows圖形編程,需要做很多復雜的工作,引用許多不同的API。例如:WinForm(帶控件表單)、GDI+(2D圖形)、DirectX
API(3D圖形)以及流媒體和流文檔等,都需要不同的API來構建應用程序。
WPF就是看著上面的操作復雜和不爽,自己決定做老大,想用DirectX技術涵蓋一切,于是想要將上述的東西全部融合到自身,減少復雜度,讓編程變得爽起來的技術。
而不可否認的是,WPF雖然很狂妄,但是這種技術里面還是有不少的可圈可點的東西。而支持WPF狂妄的資本,則就是和它后臺代碼可以前后分離的XAML技術。下面用30分鐘時間說一下XAML。
2.什么是XAML
一個界面程序的核心,無疑就是界面和后臺代碼,而xaml就是微軟為構建應用程序界面而創建的一種描述性語言,也就是說,這東西是搞界面的。
先上一段xaml代碼:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
'MyXaml.Window1'
Title='MyXaml' Height='150' Width='300' >
'30'/>
'30'/>
'30'/>
'Auto'/>
'*'/>
'0' Grid.Row='0' FontWeight='Bold' Text='姓名:' Width='30'/>
'0' Grid.Row='1' FontWeight='Bold' Width='30'>性別:
'0' Grid.Row='2' FontWeight='Bold' Width='30' Text='年齡'>
'1' Grid.Row='0' FontWeight='Bold' Width='100' />
'1' Grid.Row='1' FontWeight='Bold' Width='100'/>
'1' Grid.Row='2' FontWeight='Bold' Width='100'/>
上述xaml是我設計了一個三行兩列的界面,運行之后顯示如下:
在此,我沒有寫一行c#代碼,但是它竟然可以運行,所以也可以說它也是一種編程語言。只不過它更關注界面上面的東西而已。
那么它的運行是如何產生的?下面看幾個東西:
x:Class='MyXaml.Window1' ——利用class特性指定c#類名(后臺c#代碼)
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml——這表示利用x代替XAML的命名空