WPF学习笔记之8:Base Elemement in WPF

 

主要记录要写WPF Control,必须掌握的层次结构,明白自己要写的Control应该从那层派生更合适Object

1.     DispatcherObject

类似于消息分发机制

提供对WPF线程模型的支持

每一个DispatcherObject关联一个Dispatcher

 

2.     DependencyObject

可以认为是WPFObject基础

提供GetValue SetValue 支持以及一般的属性系统支持。

­使用依赖项属性以及作为依赖项属性实现的附加属性的能力。

 

3.     Visual

public abstract class Visual : DependencyObject

Visual 对象是一个核心 WPF 对象,其主要作用是提供呈现支持

Visual 实现二维对象在近似矩形的区域中通常需要具有可视化表示的概念。

Visual 的实际呈现发生在其他类中(不是独立的),但是 Visual 类提供了一个由各种级别的呈现处理使用的已知类型。

具体支持的功能包括:

² 坐标转换:

² 输出显示:为可视对象呈现持久的序列化绘图内容。

² 转换:对可视对象执行转换。

² 剪辑:为可视对象提供剪辑区域支持。

² 命中测试:确定指定的坐标(点)或几何图形是否包含在可视对象的边界内。

² 边界框计算:确定可视对象的边框。

在体系结构上,Visual 对象不包含对其他应用程序开发要求/与该对象的呈现密切相关的 WPF 功能的支持,如下所示:

² 事件处理

² 布局

² 样式

² 数据绑定

² 全球化

4.     UIElement

public class UIElement : Visual, IAnimatable, IInputElement

可以呈现为子元素

对基本输入事件和命令的支持,可以对用户输入作出响应(包括通过处理事件路由或命令路由控制输入发送的位置)

包含用于确定 UIElement可能的子元素的大小和位置的逻辑(由布局系统解释时)

可以引发遍历逻辑元素树路由的路由事件

对动画属性值的基本支持,支持动画系统的某些方面

Note: Visibility 状态影响该元素的所有输入处理。不可见的元素不参与命中测试并且不接收输入事件,即使鼠标放在该元素可见时的边界上也如此。

5.     FrameworkElement

public class FrameworkElement:UIElement, IFrameworkInputElement, IInputElement, ISupportInitialize

其他框架特定的布局特征

支持更丰富的有关属性的元数据报告

某些输入基类的特定于类的实现及其附加属性或附加事件

样式支持

更多的动画支持

对动态资源引用的支持。

对数据绑定的支持。

逻辑树的概念

posted @ 2008-03-14 16:06  Alen在西安  阅读(607)  评论(0编辑  收藏  举报