WPF:高級API
WPF包含了一整套針對應用程序開發人員的高級服務,下面是WPF引入到Windows編程領域中重要的一些變化。
1、WPF可以通過DirectX提供硬件加速功能。
2、類似Web的佈局模型。與通過具體的座標講控件固定在具體的位置不同,WPF根據其內容靈活排列控件的流式佈局,從而使用戶界面能夠根據顯示內容和不同的語言靈活的進行調整。
3、豐富的繪圖模型。與逐個像素繪製不同,在WPF中可以直接處理圖元--基本形狀、文本塊以及其他圖形元素,以及其他新特性。如:真正的透明控件以及本地3D支持功能。
4、編程概念的動畫。動畫是WPF框架的固有功能,在WPF中可以使用聲明式標記定義動畫,並讓其動起來。
5、支持音頻和視頻媒體。WPF支持播放任何Windows媒體播放器所支持的音頻和視頻文件,同時允許播放多個媒體文件,它還提供了允許在用戶界面的其他部分集成視頻內容的工具以及添加特殊效果的技巧。如:在旋轉的3D立體上放置視頻窗口。
6、樣式和模版。樣式(style)允許標準化格式並且可以再各個應用程序間重複使用。模版允許改變元素的渲染方法。
7、命令。通過代碼抽象,可以再特定的地方定義命令並將它鏈接到多個控件上。
8、聲明式用戶界面。Visual Studio 提供了將各個窗口的內容串行化到一個XAML文檔的一套XML標籤中,其優點是用戶界面和代碼完全分離。
分辨率無關性
WPF如何決定窗口的大小的呢?
在說這個之前先要了解WPF的單位。
WPF窗口以及窗口中所有使用的元素都使用的設備無關單位向量(device-independent unit)。一個設備無關單位被定位爲1/96英寸。WPF計算窗口時使用系統的DPI[dot per inch]設置。
舉例說明下:在WPF中創建一個尺寸爲96*96單位的小按鈕。如果使用標準的窗口DPI設置(96dpi),每個設備無關單位實際應對一個物理像素。對這種情況,WPF使用下面的公式進行計算:
[物理單位尺寸] = [設備無關單位尺寸] × [系統DPI]
= 1/96英寸 × 96dpi
=1像素