快速掌握WPF类层次含义

开发 开发工具
WPF类层次对于初学者来说是一个非常重要的知识点。当我们在实际开发中,会发现掌握这一知识对于我们的开发是多么有帮助的。

WPF在实际使用中,往往会用到各种各样的类。但是,当我们在相关资料中去寻找这些类的应用时,会发现是一个非常麻烦的事情。对于一个开发人员来说,必须牢固掌握WPF类层次的相关概念。如图2显示了WPF类层次。

 

WPF类层次 


如图2所示,WPF类层次中主要包括:System.Threading.DispatcherObject、System.Windows.DependencyObject、System.Windows.Media.Visual、System.Windows.UIElement、System.Windows.FrameworkElement和System.Windows.Controls.Control。这些内容与PresentationFramework、PresentationCore有关,其中FrameworkElement和Control属于PresentationFramework,其余的类属于PresentationCore。#t#

下面简单说明一下这些WPF类层次,建议读者在了解类的同时,要注意它们之间的交互关系:

System.Threading.DispatcherObject WPF中有许多类继承自DispatcherObject,DispatcherObject提供了处理同步和并发的基本构造。WPF建立在dispatcher提供的消息系统之上。它的工作方式很像win32中的消息泵;事实上,WPF的dispatcher使用User32消息来实现线程间调用。

System.Windows.DependencyObject 构建WPF的一个主要思想是属性优先于方法和事件。属性是声名性的,并且能够更方便实现开发人员。WPF提供了丰富的属性系统,其核心是DependencyObject。它的基础是属性表达式。属性系统提供对属性的稀疏保存。

System.Windows.Media.Visual Visual是一个抽象类,每个FrameworkElement对象都必须继承该类。该类的主要作用是为WPF提供呈现支持,主要包括输出显示,坐标转换,区域剪切等。以用户界面控件(例如Button,TextBox)为例,这些控件都继承Visual类,并使用该类定义的属性实现所呈现数据的持久化。

System.Windows.UIElement UIElement是构建WPF元素和基本呈现特征的基类。该类继承自Visual类,其中定义很多与输入和焦点有关的特性,例如键盘事件,鼠标和笔输入。同时,该类还包括一些与WPF事件模型有关的API。

System.Windows.FrameworkElement FrameworkElement类是连接Framework层次类与Core层次类的连接点。该类不仅继承了UIElement类,而且还添加了一些功能,例如,布局定义、逻辑树、对象生命周期事件、支持数据绑定和动态资源引用、支持样式和动画。

System.Windows.Controls.Control Control是创建自定义应用程序控件的基类。开发人员可通过重写Control类所提供的属性,方法,事件等,为自定义控件添加自定义逻辑。

相信以上内容对于读者了解WPF类层次会有一定帮助,但是只了解这些是显然不够的。作为一名合格WPF开发人员,必须熟悉其他细小,更为常用的WPF类。

责任编辑:曹凯 来源: IT168
相关推荐

2010-06-21 15:33:47

路由信息协议

2009-12-23 10:35:55

WPF应用程序项目

2009-11-18 14:53:40

Oracle参数设置

2009-12-08 15:48:19

PHP文章分页

2009-12-11 16:39:08

PHP引号转义

2017-08-07 15:19:30

编程语言快速

2023-09-26 01:21:34

2009-11-09 15:06:34

WCF序列化

2012-06-07 10:18:19

Fedora 17操作系统

2009-11-20 09:24:10

PHP多维数组排序

2009-08-12 17:03:22

C#变量类型转换

2009-12-08 17:15:43

PHP调用Java语言

2023-06-01 15:37:14

鸿蒙社区新流程

2021-01-08 15:14:16

Python循环for循环

2021-01-13 10:28:16

Maven插件Mojo

2009-11-18 12:31:19

PHP构造函数

2022-08-19 12:12:02

TypeScriptInfer 类型

2010-06-29 11:29:20

UML类图画法

2012-05-29 09:20:28

SQL Profile

2013-02-18 08:36:51

powershell
点赞
收藏

51CTO技术栈公众号