您的位置:首页 > 其它

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

2008-03-14 16:06 225 查看
主要记录要写WPF Control,必须掌握的层次结构,明白自己要写的Control应该从那层派生更合适Object

1. DispatcherObject

l 类似于消息分发机制

l 提供对WPF线程模型的支持

l 每一个DispatcherObject关联一个Dispatcher

l

2. DependencyObject

l 可以认为是WPF的Object基础

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

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

l

3. Visual

public abstract class Visual : DependencyObject

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

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

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

具体支持的功能包括:

² 坐标转换:

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

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

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

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

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

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

² 事件处理

² 布局

² 样式

² 数据绑定

² 全球化

4. UIElement

public class UIElement : Visual, IAnimatable, IInputElement

l 可以呈现为子元素

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

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

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

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

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

5. FrameworkElement

public class FrameworkElement:UIElement, IFrameworkInputElement, IInputElement, ISupportInitialize

l 其他框架特定的布局特征

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

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

l 样式支持

l 更多的动画支持

l 对动态资源引用的支持。

l 对数据绑定的支持。

l 逻辑树的概念
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: