WPF 概述

WPF 全稱是:Windows Presentation Foundation,直譯爲Windows表示基礎。WPF是專門爲GUI(Graphic User Interface)程序開發設計的。框架

在過去不少年,用於GUI開發的技術一直都在改進。無論是Windows Form,仍是Visual Basic 6等等,在底層都是使用Windows的 User32,GDI/GDI+ 這2個部分來構建用戶界面。而WPF中,底層的圖形技術再也不是GDI/GDI+ ,而是DirectX。無論是用WPF繪製簡單的文本框、按鈕,仍是到複雜的3D圖形效果,都是採用DirectX完成的。佈局

若是要保證在WPF中得到硬件加速功能,必須保證爲顯卡安裝了本地的WDDM(Windows Display Driver Model)驅動。若是你是Windows Vista,或者Windows 7 已經以上版本,就不用擔憂這個功能的缺失,系統已經集成了WDDM。post

WPF還有一個重要的特徵就是分辨率的無關性:WPF能夠根據系統的DPI設置,很是靈活的放大或者縮小內容,以適應全部的顯示器和顯示選擇。能夠看看http://www.wpflearningexperience.com/?p=41這個地址的討論。動畫

下面來看看WPF的體系結構:spa

PresentationFramework:包含了WPF頂層的類型,好比窗口、面板等。還實現了高層的抽象,如樣式。操作系統

PresentationCore:包含了基礎類型,如UIElement類和Visual類。線程

WindowsBase:DispatcherObject和DependencyObject都在其中定義。設計

milcore:是非託管代碼實現的。是WPF渲染系統的核心,將可視化元素轉換爲DirectX所指望的三角形和紋理。能夠看出是WPF的一部分,可是同時也是操做系統的一個核心組件。orm

DirectX:WPF全部的的可見元素都是由他進行建立。blog

User32:仍被做爲WPF的一部分,僅做爲決定程序佔有桌面的那一部分。

 

下面來看看WPF的類圖:

 

DispatcherObject:WPF使用的是STA(single-thread affinity)模型的。不能在線程裏面直接更新用戶界面,一般須要使用線程同步上下文。WPF有專門的線程模型,後面有機會再講到。

DependencyObject:經過繼承該類,得到對依賴屬性的支持。

Visual:任何繼承自該類的類均可以在界面上顯示出來,如不想使用高級的WPF特性,可使用該類。

UIElement:爲WPF提供LIFE支持(Layout、Input、Focus、Event)。屬於WPF的核心級別。

FrameworkElement是 WPF 框架級別實現類,該類創建在 UIElement 基礎上,並添加了與 WPF 框架級別的特定交互。並添加了更多的佈局特徵,樣式支持,動畫支持等。

Shape:基本的形狀類。包括Rectangle、Ellipse、Line等。

Panel:全部佈局容器的基類。包括StackPanel、DockPanel、WarpPanel、Grid、Canvas等。

ControlWPF中,全部可視化內容都被稱爲元素;只有少部分元素才能稱爲控件;控件是那些可以接收焦點並於用戶交互的元素。記住這一點很重要。該類中最重要的是提供了控件的模板支持。

ContentControl:全部單一內容的控件的基類。單一內容是指,只能有一個頂級元素,不能同時存在多個。

ItemsControl:全部顯示選項集合的基類。如ListBox、TreeView等。

更詳細的類層次結構能夠看:http://blogs.interknowlogy.com/2007/05/02/wpf-class-library-reference-poster/ 

相關文章
相關標籤/搜索