更新:
2008 年 7 月
UIElement 是 WPF 核心级实现的基类,该类建立在 Windows Presentation Foundation (WPF) 元素和基本表示特征基础上。
命名空间:
System.Windows 程序集:
PresentationCore(在 PresentationCore.dll 中)
用于 XAML 的 XMLNS:http://schemas.microsoft.com/winfx/xaml/presentation
Public Class UIElement _
Inherits Visual _
Implements IAnimatable, IInputElement
Dim instance As UIElement
public class UIElement extends Visual implements IAnimatable,
IInputElement
UIElement 提供元素布局特征的起点,同时公开派生类可以重写的虚方法,这种方法可以影响元素及其子元素的布局呈现行为。
通常,UIElement 类中也定义了元素的许多输入和焦点行为。其中包括键盘、鼠标和手写笔输入事件,以及相关的状态属性。其中许多事件是路由事件,并且许多与输入相关的事件同时具有事件的冒泡路由版本和隧道版本。这些成对事件通常是控件作者最感兴趣的事件。
UIElement 还包含与 WPF 事件模型相关的 API,包括可以引发源自元素实例的指定路由事件的方法。
在体系结构方面,可以将 UIElement 看作与 Win32 编程中的窗口句柄或 动态 HTML (DHTML) 编程中的元素大致相当。UIElement 是 WPF 核心级基元素。
UIElement 具有下列功能,这些功能由 UIElement 类具体定义:
可以呈现为子元素(UIElement 派生自高级图形类 Visual)
包含用于确定 UIElement 可能的子元素的大小和位置的逻辑(由布局系统解释时)
可以对用户输入作出响应(包括通过处理事件路由或命令路由控制输入发送的位置)
可以引发遍历逻辑元素树路由的路由事件
支持动画系统的某些方面
FrameworkElement 是 WPF 框架级别实现类,该类建立在 UIElement 基础上,并添加了与 WPF 框架级别的特定交互。FrameworkElement 增加并定义了以下功能:
另一个相关类是 ContentElement。ContentElement 类实现许多与 UIElement 相同的成员;这两种类的区别在于它们在整体内容模型中的预期位置。通常,UIElement 派生类定义一个相对严格的内容模型,这意味着在哪种元素可以作为标记中的子元素方面存在一些限制。虽然可以对 UIElement 中的子内容采取较少的限制,但此功能通常集中在指定的内容属性中。通常,ContentElement 派生类对内容的限制不会那样严格,以支持诸如流格式文档之类的方案。
重要说明: |
|---|
Visibility 状态影响该元素的所有输入处理。不可见的元素不参与命中测试并且不接收输入事件,即使鼠标放在该元素可见时的边界上也如此。 |
System..::.Object
System.Windows.Threading..::.DispatcherObject
System.Windows..::.DependencyObject
System.Windows.Media..::.Visual
System.Windows..::.UIElement
System.Windows..::.FrameworkElement
此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。
Windows Vista
.NET Framework 和 .NET Compact Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。
.NET Framework
受以下版本支持:3.5、3.0
参考
其他资源