WPF学习笔记之8:Base Elemement in WPF
2008-03-14 16:06
225 查看
主要记录要写WPF Control,必须掌握的层次结构,明白自己要写的Control应该从那层派生更合适Object
l 提供对WPF线程模型的支持
l 每一个DispatcherObject关联一个Dispatcher
l
l 提供GetValue 和 SetValue 支持以及一般的属性系统支持。
l 使用依赖项属性以及作为依赖项属性实现的附加属性的能力。
l
l Visual 对象是一个核心 WPF 对象,其主要作用是提供呈现支持
l Visual 实现二维对象在近似矩形的区域中通常需要具有可视化表示的概念。
l Visual 的实际呈现发生在其他类中(不是独立的),但是 Visual 类提供了一个由各种级别的呈现处理使用的已知类型。
具体支持的功能包括:
² 坐标转换:
² 输出显示:为可视对象呈现持久的序列化绘图内容。
² 转换:对可视对象执行转换。
² 剪辑:为可视对象提供剪辑区域支持。
² 命中测试:确定指定的坐标(点)或几何图形是否包含在可视对象的边界内。
² 边界框计算:确定可视对象的边框。
在体系结构上,Visual 对象不包含对其他应用程序开发要求/与该对象的呈现密切相关的 WPF 功能的支持,如下所示:
² 事件处理
² 布局
² 样式
² 数据绑定
² 全球化
l 可以呈现为子元素
l 对基本输入事件和命令的支持,可以对用户输入作出响应(包括通过处理事件路由或命令路由控制输入发送的位置)
l 包含用于确定 UIElement可能的子元素的大小和位置的逻辑(由布局系统解释时)
l 可以引发遍历逻辑元素树路由的路由事件
l 对动画属性值的基本支持,支持动画系统的某些方面
Note: Visibility 状态影响该元素的所有输入处理。不可见的元素不参与命中测试并且不接收输入事件,即使鼠标放在该元素可见时的边界上也如此。
l 其他框架特定的布局特征
l 支持更丰富的有关属性的元数据报告
l 某些输入基类的特定于类的实现及其附加属性或附加事件
l 样式支持
l 更多的动画支持
l 对动态资源引用的支持。
l 对数据绑定的支持。
l 逻辑树的概念
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 实现二维对象在近似矩形的区域中通常需要具有可视化表示的概念。
l Visual 的实际呈现发生在其他类中(不是独立的),但是 Visual 类提供了一个由各种级别的呈现处理使用的已知类型。
具体支持的功能包括:
² 坐标转换:
² 输出显示:为可视对象呈现持久的序列化绘图内容。
² 转换:对可视对象执行转换。
² 剪辑:为可视对象提供剪辑区域支持。
² 命中测试:确定指定的坐标(点)或几何图形是否包含在可视对象的边界内。
² 边界框计算:确定可视对象的边框。
在体系结构上,Visual 对象不包含对其他应用程序开发要求/与该对象的呈现密切相关的 WPF 功能的支持,如下所示:
² 事件处理
² 布局
² 样式
² 数据绑定
² 全球化
4. UIElement
public class UIElement : Visual, IAnimatable, IInputElement |
l 对基本输入事件和命令的支持,可以对用户输入作出响应(包括通过处理事件路由或命令路由控制输入发送的位置)
l 包含用于确定 UIElement可能的子元素的大小和位置的逻辑(由布局系统解释时)
l 可以引发遍历逻辑元素树路由的路由事件
l 对动画属性值的基本支持,支持动画系统的某些方面
Note: Visibility 状态影响该元素的所有输入处理。不可见的元素不参与命中测试并且不接收输入事件,即使鼠标放在该元素可见时的边界上也如此。
5. FrameworkElement
public class FrameworkElement:UIElement, IFrameworkInputElement, IInputElement, ISupportInitialize |
l 支持更丰富的有关属性的元数据报告
l 某些输入基类的特定于类的实现及其附加属性或附加事件
l 样式支持
l 更多的动画支持
l 对动态资源引用的支持。
l 对数据绑定的支持。
l 逻辑树的概念
相关文章推荐
- WPF学习笔记之9:FlowDocument in WPF
- Programming in Objective-C 学习笔记01
- Programming in Objective-C 学习笔记04——变量和数据类型
- spark in eclipse---Spark学习笔记3
- C# in Depth Third Edition 学习笔记-- C#2的一些特性
- Unity学习笔记(四)-----------脚本、parent、GetComponent、GetComponentInChildren
- Java2核心技术第七版的学习笔记(三) Fundamental Programming Structures in Java(Java语言的基础)(二)
- spring in action 学习笔记(四)bean的作用域
- WPF 学习笔记(Menu篇)
- ASP.NET MVC4 IN ACTION学习笔记-第六波[Ajax in ASP.NET MVC][2/3]
- DirectX 9.0c游戏开发手记之“龙书”第二版学习笔记之6: Chap8: Drawing in Direct3D ---- Part II
- Python学习笔记(2)-whil,for,for...in,循环嵌套
- WPF学习笔记三 依赖属性
- install opencv in ubuntu —— opencv学习笔记( 2 )
- WPF and Silverlight 学习笔记(十五):WPF命令(Commands)
- libevent学习笔记【使用篇】——2. 获取(创建)event_base
- WPF 学习笔记 - 5. DependencyProperty
- WPF 学习笔记 - 12. Binding (5)
- Java in a Nutshell学习笔记
- WPF学习笔记1 WPF生命周期和参数配置