WPF类层次结构
WPF类层次结构
-
System.Threading.DispatcherObject类
WPF应用程序使用STA(Single Thread Affinity)模型,整个用户界面由一个单独的线程拥有,从另一个线程和用户界面元素进行交互是不安全的。通过继承自DispatcherObject类,用户界面中的每个元素都可以检查代码是否在正确的线程上运行,并且可以访问调度程序为用户界面线程封送代码。
-
System.Windows.DependencyObject类
依赖属性,主要提供给元素交互使用,主要特性:更改通知、默认值继承、减少属性存储空间。
-
System.Windows.Media.Visual类
Visual可以看做是一个绘图对象,它封装了绘图指令、如何执行绘图的附加细节(裁剪、透明度和变换)以及基本功能(命中测试)。
可通过DrawingContext对象向Visual中进行各类绘制,绘制时并不是真正的向屏幕进行绘制(这是和GDI+最大的不同之处),而是将绘图API的调用转换为一条条的指令保存起来,由WPF在需要的时候调用(由WPF决定什么时候需要重新绘制)。
-
System.Windows.UIElement类
UIElement提供了WPF控件的基础。例如:布局、输入、焦点以及事件(WPF团队使用手写字母缩写LIFE来表示)。并支持数据绑定、动画以及样式等核心特征。
-
System.Windows.FrameworkElement类
FrameworkElement类实现了一些由UIElement定义的成员,并提供了一些重要属性(对齐、Margin)。
-
System.Windows.Controls.ContentControl类
ContentControl是所有单一内容控件的基类。例如:Window、Border、Lable、Button等。
-
System.Windows.Controls.ItemsControl类
ItemsControl是所有集合内容控件的基类。例如:ListBox、TreeView等。
-
System.Windows.Controls.Panel类
Panel是所有布局容器控件的基类,布局容器是可以包含一个或多个子元素、并根据特定的规则对子元素进行排列的元素。例如:Canvas、Grid、UniformGrid、StackPanel、WrapPanel等。