1.DispatcherObject类表示具有相关联的对象分派器。调度程序处理要在特定线程上执行工作的请求队列。它能够在其关联的线程上调用方法。
DispatcherObject是对象的基类,用于跟踪与创建它们的线程关联的Dispatcher。
WPF控件继承自DispatcherObject,因为它们需要从创建它们的线程调用它们的方法。
DispatcherObject有两个方法可以帮助确保从正确的线程调用控件的方法。
- CheckAccess - 检查当前线程是否可以调用控件上的方法
- VerifyAccess - 如果没有访问权限,则抛出InvalidOperationException
如果控件确定当前线程没有访问权限,则可以使用其Dispatcher属性(也在DispatcherObject中)在正确的线程上调用方法。
2.DependencyObject是支持依赖项属性的类的基类。
WPF中的依赖项属性类似于标准CLR属性,但功能更强大。依赖属性:
- 从许多不同来源中的一个获取它们的值
- 支持属性值的继承
- 属性值更改时的支持通知
如果一个类派生自DependencyObject,那么该类可以注册自己的依赖项属性并调用方法来获取/设置其依赖项属性的值。
3.Visual是表示可以呈现给WPF窗口或页面的对象的所有类的基类。它为命中测试,剪切和坐标转换提供支持,并为窗口或页面呈现自身。它还通过VisualParent属性和GetVisualChild方法模拟对象在WPF可视化树中的参与。
的视觉类也可用于实现新的(轻量)WPF控制的起始点。