WPF使用一个多层次的架构。在顶部,你的应用与高层的服务相互作用,这些服务完全以托管的C#代码书写。在幕后,使用一个低层的非托管组件milcore.dll
翻译.NET对象到Direct3D纹理和三角形。milcore.dll
使用非托管代码实现,因为它需要紧密地整合Direct3D,还因为它对性能极端敏感。
PresentationFramework.dll
它持有顶层的WPF类型,包括windows
,panels
,和其它的控件类型。它也实现诸如Style
等高层程序抽象。你将用到的大多数类都来自于这个装配体。
PresentationCore.dll
它持有诸如UIElement
和Visual
等基类,所有的形状和控件派生自这些基类。如果你不需要完整的window
和control
抽象层,你能下降到这层,仍利用WPF的呈现引擎。
WindowsBase.dll
这持有更基本成分,有可能重用在WPF之外,诸如DispatcherObject
和DependencyObject
,它们引进依赖属性的基本架构。
类层次
System.Threading.DispatcherObject
可以获知代码是否运行在正确的线程上,通过调度器封送代码到用户界面线程。
System.Windows.DependencyObject
支持改变通知,默认值继承,和更多经济的属性存储。从这个类派生,就获得了对依赖属性的支持。
System.Windows.Media.Visual
Visual类的派生类能够显示在窗口中。
System.Windows.UIElement
支持布局、输入、焦点和事件等WPF要素,还支持路由事件,命令等。
System.Windows.FrameworkElement
FrameworkElement
是继承树的最后一站。它添加了一些更具体的布局属性如:HorizontalAlignment
,Margin
。还支持数据绑定,动画,和样式。
System.Windows.Controls.Control
控件是能和用户交互的元素。控件类支持模板。
System.Windows.Controls.ContentControl
System.Windows.Controls.ItemsControl
System.Windows.Controls.Panel