UIElement 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
UIElement 是 WPF 核心级实现的基类,这些实现是在 Windows Presentation Foundation (WPF) 元素和基本表示特性上生成的。
public ref class UIElement : System::Windows::Media::Visual, System::Windows::IInputElement, System::Windows::Media::Animation::IAnimatable
[System.Windows.Markup.UidProperty("Uid")]
public class UIElement : System.Windows.Media.Visual, System.Windows.IInputElement, System.Windows.Media.Animation.IAnimatable
[<System.Windows.Markup.UidProperty("Uid")>]
type UIElement = class
inherit Visual
interface IAnimatable
interface IInputElement
[<System.Windows.Markup.UidProperty("Uid")>]
type UIElement = class
inherit Visual
interface IInputElement
interface IAnimatable
Public Class UIElement
Inherits Visual
Implements IAnimatable, IInputElement
- 继承
- 派生
- 属性
- 实现
注解
UIElement 提供元素布局特征的起点,并公开派生类可以重写的虚拟方法,这可能会影响元素及其子元素的布局呈现行为。
通常,元素的大部分输入和焦点行为也在 类中 UIElement 定义。 这包括键盘、鼠标和触笔输入的事件,以及相关的状态属性。 其中许多事件是路由事件,许多与输入相关的事件都具有浮升路由版本以及事件的隧道版本。 这些配对事件通常是控制作者最感兴趣的事件。
UIElement 还包括与 WPF 事件模型相关的 API,包括可引发源自元素实例的指定路由事件的方法。
在体系结构方面, UIElement 可以视为大致等效于 Win32 编程中的窗口句柄,或动态 HTML (DHTML 中的元素) 编程。 UIElement 是 WPF 核心级别的基元素。
具有 UIElement 类专门定义的 UIElement 以下功能:
包含用于在布局系统解释时调整 (可能的子元素 UIElement 的大小和位置的逻辑)
可以响应用户输入 (包括控制通过处理事件路由或命令路由来控制输入发送到的位置,)
可以引发通过逻辑元素树传递路由的路由事件
支持动画系统的某些方面
FrameworkElement 是基于 构建的 UIElementWPF 框架级实现类,并添加了与 WPF 框架级别的特定交互。 FrameworkElement 添加并定义以下功能:
其他特定于框架的布局特征
支持对属性进行更丰富的元数据报告
特定输入基类及其附加属性或附加事件的特定于类的实现
风格支持
进一步的动画支持
另一个相关类是 ContentElement。 类 ContentElement 实现许多与 相同的成员 UIElement;这两个类之间的差异与它们在整体内容模型中的预期位置有关。 UIElement派生类通常定义相对严格的内容模型,这意味着标记中哪些元素可能是子元素存在限制。 可能存在在 中 UIElement获取限制较少的子内容的能力,但该容量通常集中在指定的内容属性中。 ContentElement派生类通常不限制内容,以支持流格式文档等方案。
重要
Visibility 状态会影响该元素的所有输入处理。 不可见的元素不参与命中测试,也不会接收输入事件,即使鼠标位于元素可见时所在的边界上也是如此。
构造函数
UIElement() |
初始化 UIElement 类的新实例。 |
字段
属性
AllowDrop |
获取或设置一个值,该值指示此元素能否用作拖放操作的目标。 这是依赖项属性。 |
AreAnyTouchesCaptured |
获取一个值,该值指示在此元素上是否至少捕获了一次触摸。 |
AreAnyTouchesCapturedWithin |
获取一个值,该值指示在此元素或其可视化树中的任何子元素上是否至少捕获了一次触摸。 |
AreAnyTouchesDirectlyOver |
获取一个值,该值指示在此元素上是否至少按下了一次触摸设备。 |
AreAnyTouchesOver |
获取一个值,该值指示在此元素或其可视化树中的任何子元素上是否至少按下了一次触摸设备。 |
BitmapEffect |
已过时.
已过时.
获取或设置一个位图效果,该效果将直接应用到此元素所呈现的内容。 这是依赖项属性。 |
BitmapEffectInput |
已过时.
已过时.
获取或设置位图效果的输入源,该效果将直接应用到此元素所呈现的内容。 这是依赖项属性。 |
CacheMode |
获取或设置 UIElement 的缓存表示形式。 |
Clip |
获取或设置用于定义元素内容轮廓的几何图形。 这是依赖项属性。 |
ClipToBounds |
获取或设置一个值,该值指示是否剪切此元素的内容(或来自此元素的子元素的内容)使其适合包含元素的大小。 这是依赖项属性。 |
CommandBindings |
获取与此元素关联的 CommandBinding 对象的集合。 CommandBinding 为此元素启用命令处理,并声明命令、命令的事件和由此元素附加的处理程序之间的链接。 |
DependencyObjectType |
获取 DependencyObjectType 包装此实例的 CLR 类型的 。 (继承自 DependencyObject) |
DesiredSize |
获取在布局流程的度量传递过程中此元素计算所得的大小。 |
Dispatcher |
获取与此 Dispatcher 关联的 DispatcherObject。 (继承自 DispatcherObject) |
Effect |
获取或设置要应用于 UIElement 的位图效果。 这是依赖项属性。 |
Focusable |
获取或设置一个值,该值指示元素能否得到焦点。 这是依赖项属性。 |
HasAnimatedProperties |
获取一个值,该值指示此元素是否具有任何进行动画处理的属性。 |
HasEffectiveKeyboardFocus |
获取一个值,该值指示 UIElement 是否具有焦点。 |
InputBindings |
获取与此元素关联的输入绑定的集合。 |
IsArrangeValid |
获取一个值,该值指示此元素布局中的子元素的计算大小和位置是否有效。 |
IsEnabled |
获取或设置一个值,该值指示是否在用户界面 (UI) 中启用此元素。 这是依赖项属性。 |
IsEnabledCore |
获取一个值,该值成为派生类中 IsEnabled 的返回值。 |
IsFocused |
获取一个值,该值确定此元素是否具有逻辑焦点。 这是依赖项属性。 |
IsHitTestVisible |
获取或设置一个值,该值声明是否可以返回此元素作为其呈现内容的某些部分的点击测试结果。 这是依赖项属性。 |
IsInputMethodEnabled |
获取一个值,该值指示是否启用输入法系统(例如输入法编辑器 (输入法) )来处理此元素的输入。 |
IsKeyboardFocused |
获取一个值,该值表示该元素是否具有键盘焦点。 这是依赖项属性。 |
IsKeyboardFocusWithin |
获取一个值,该值指示键盘焦点是否位于元素或其可视化树子元素内的任意位置。 这是依赖项属性。 |
IsManipulationEnabled |
获取或设置一个值,该值指示是否对此 UIElement 启用操作事件。 |
IsMeasureValid |
获取一个值,该值指示布局测量返回的当前大小是否有效。 |
IsMouseCaptured |
获取一个值,该值指示此元素是否捕获了鼠标。 这是依赖项属性。 |
IsMouseCaptureWithin |
获取一个值,该值确定鼠标捕获是由此元素还是其可视化树中的子元素持有。 这是依赖项属性。 |
IsMouseDirectlyOver |
获取一个值,该值指示在考虑元素组合的情况下,鼠标指针的位置是否与命中测试结果相对应。 这是依赖项属性。 |
IsMouseOver |
获取一个值,该值指示鼠标指针是否位于此元素(包括可视化树中的子元素)的上方。 这是依赖项属性。 |
IsSealed |
获取一个值,该值指示此实例当前是否为密封的(只读)。 (继承自 DependencyObject) |
IsStylusCaptured |
获取一个值,该值表示此元素是否捕获了触笔。 这是依赖项属性。 |
IsStylusCaptureWithin |
获取一个值,该值确定触笔捕获是由此元素还是由元素边界内的元素及其可视化树持有。 这是依赖项属性。 |
IsStylusDirectlyOver |
获取一个值,该值指示在考虑元素组合的情况下,触笔的位置是否与命中测试结果相对应。 这是依赖项属性。 |
IsStylusOver |
获取一个值,该值指示触笔指针是否位于此元素(包括可视化子元素)的上方。 这是依赖项属性。 |
IsVisible |
获取一个值,该值指示此元素在用户界面 (UI) 中是否可见。 这是依赖项属性。 |
Opacity |
获取或设置在用户界面 (UI) 呈现时应用于整个 UIElement 的不透明度因子。 这是依赖项属性。 |
OpacityMask |
获取或设置一个作为 Brush 实现的不透明蒙板,该蒙板可应用到此元素所呈现内容的任何 Alpha 通道蒙板。 这是依赖项属性。 |
PersistId |
已过时.
获取一个唯一标识此元素的值。 |
RenderSize |
获取(或设置)此元素的最终呈现大小。 |
RenderTransform |
获取或设置影响此元素的呈现位置的转换信息。 这是依赖项属性。 |
RenderTransformOrigin |
获取或设置由 RenderTransform 声明的任何可能呈现转换的中心点,相对于元素的边界。 这是依赖项属性。 |
SnapsToDevicePixels |
获取或设置一个值,该值确定在呈现过程中,此元素的呈现是否应使用特定于设备的像素设置。 这是依赖项属性。 |
StylusPlugIns |
获取与此元素关联的所有触笔插件(自定义)对象的集合。 |
TouchesCaptured |
获取在此元素上捕获的所有触摸设备。 |
TouchesCapturedWithin |
获取在此元素或其可视化树中的任何子元素上捕获的所有触摸设备。 |
TouchesDirectlyOver |
获取此元素上的所有触摸设备。 |
TouchesOver |
获取在此元素或其可视化树中的任何子元素上的所有触摸设备。 |
Uid |
获取或设置此元素的唯一标识符(用于本地化)。 这是依赖项属性。 |
Visibility |
获取或设置用户界面 (UI) 此元素的可见性。 这是依赖项属性。 |
VisualBitmapEffect |
已过时.
已过时.
获取或设置 BitmapEffect 的 Visual 值。 (继承自 Visual) |
VisualBitmapEffectInput |
已过时.
已过时.
获取或设置 BitmapEffectInput 的 Visual 值。 (继承自 Visual) |
VisualBitmapScalingMode |
获取或设置 BitmapScalingMode 的 Visual。 (继承自 Visual) |
VisualCacheMode |
获取或设置 Visual 的缓存表示形式。 (继承自 Visual) |
VisualChildrenCount |
获取 Visual 的子元素数量。 (继承自 Visual) |
VisualClearTypeHint |
获取或设置 ClearTypeHint,它确定在 Visual 中呈现 ClearType 的方式。 (继承自 Visual) |
VisualClip |
获取或设置 Visual 的剪辑区域作为 Geometry 值。 (继承自 Visual) |
VisualEdgeMode |
获取或设置 Visual 的边缘模式作为 EdgeMode 值。 (继承自 Visual) |
VisualEffect |
获取或设置要应用于 Visual 的位图效果。 (继承自 Visual) |
VisualOffset |
获取或设置可视对象的偏移量值。 (继承自 Visual) |
VisualOpacity |
获取或设置 Visual 的不透明度。 (继承自 Visual) |
VisualOpacityMask |
获取或设置 Brush 值,该值表示 Visual 的不透明蒙板。 (继承自 Visual) |
VisualParent |
获取可视对象的可视化树父级。 (继承自 Visual) |
VisualScrollableAreaClip |
获取或设置 Visual 的剪辑的可滚动区域。 (继承自 Visual) |
VisualTextHintingMode |
获取或设置 Visual 的 TextHintingMode。 (继承自 Visual) |
VisualTextRenderingMode |
获取或设置 Visual 的 TextRenderingMode。 (继承自 Visual) |
VisualTransform | (继承自 Visual) |
VisualXSnappingGuidelines |
获取或设置 x 坐标(垂直)准线集合。 (继承自 Visual) |
VisualYSnappingGuidelines |
获取或设置 Y 坐标(水平)准线集合。 (继承自 Visual) |
方法
事件
DragEnter |
在输入系统报告出现以此元素为拖动目标的基础拖动事件时发生。 |
DragLeave |
在输入系统报告出现以此元素为拖动起点的基础拖动事件时发生。 |
DragOver |
在输入系统报告出现以此元素为可能放置目标的基础拖动事件时发生。 |
Drop |
在输入系统报告出现将此元素作为放置目标的基础放置事件时发生。 |
FocusableChanged |
当 Focusable 属性的值更改时发生。 |
GiveFeedback |
在输入系统报告出现涉及此元素的基础拖放操作时发生。 |
GotFocus |
在此元素获得逻辑焦点时发生。 |
GotKeyboardFocus |
在此元素聚焦于键盘时发生。 |
GotMouseCapture |
在此元素捕获鼠标时发生。 |
GotStylusCapture |
在此元素捕获触笔时发生。 |
GotTouchCapture |
在此元素上捕获触摸屏输入时发生。 |
IsEnabledChanged |
在此元素的 IsEnabled 属性值更改时发生。 |
IsHitTestVisibleChanged |
在此元素的 IsHitTestVisible 依赖项属性值更改时发生。 |
IsKeyboardFocusedChanged |
在此元素的 IsKeyboardFocused 属性值更改时发生。 |
IsKeyboardFocusWithinChanged |
在此元素的 IsKeyboardFocusWithin 属性值更改时发生。 |
IsMouseCapturedChanged |
在此元素的 IsMouseCaptured 属性值更改时发生。 |
IsMouseCaptureWithinChanged |
在此元素的 IsMouseCaptureWithinProperty 值更改时发生。 |
IsMouseDirectlyOverChanged |
在此元素的 IsMouseDirectlyOver 属性值更改时发生。 |
IsStylusCapturedChanged |
在此元素的 IsStylusCaptured 属性值更改时发生。 |
IsStylusCaptureWithinChanged |
在此元素的 IsStylusCaptureWithin 属性值更改时发生。 |
IsStylusDirectlyOverChanged |
在此元素的 IsStylusDirectlyOver 属性值更改时发生。 |
IsVisibleChanged |
在此元素的 IsVisible 属性值更改时发生。 |
KeyDown |
当焦点在该元素上时按下某个键后发生。 |
KeyUp |
当焦点在该元素上时松开某个键后发生。 |
LayoutUpdated |
在与当前 Dispatcher 关联的各种可视元素的布局更改时发生。 |
LostFocus |
在此元素丢失逻辑焦点时发生。 |
LostKeyboardFocus |
在此元素不再聚焦于键盘时发生。 |
LostMouseCapture |
在此元素丢失鼠标捕获时发生。 |
LostStylusCapture |
在此元素丢失触笔捕获时发生。 |
LostTouchCapture |
在此元素失去触摸屏输入捕获时发生。 |
ManipulationBoundaryFeedback |
当操作遇到边界时发生。 |
ManipulationCompleted |
对于 UIElement 对象的操作和延时完毕时发生。 |
ManipulationDelta |
当输入设备在操作期间更改位置时发生。 |
ManipulationInertiaStarting |
当输入设备在操作期间与 UIElement 对象失去联系且延时开始时发生。 |
ManipulationStarted |
当输入设备对 UIElement 对象开始操作时发生。 |
ManipulationStarting |
在首次创建操作处理器时发生。 |
MouseDown |
在指针位于此元素上并且按下任意鼠标按钮时发生。 |
MouseEnter |
在鼠标指针进入此元素的边界时发生。 |
MouseLeave |
在鼠标指针离开此元素的边界时发生。 |
MouseLeftButtonDown |
在鼠标指针位于此元素上并且按下鼠标左键时发生。 |
MouseLeftButtonUp |
在鼠标指针位于此元素上并且松开鼠标左键时发生。 |
MouseMove |
在鼠标指针位于此元素上并且移动鼠标指针时发生。 |
MouseRightButtonDown |
在鼠标指针位于此元素上并且按下鼠标右键时发生。 |
MouseRightButtonUp |
在鼠标指针位于此元素上并且松开鼠标右键时发生。 |
MouseUp |
在鼠标指针位于此元素上并且松开任意鼠标按钮时发生。 |
MouseWheel |
在鼠标指针位于此元素上并且用户滚动鼠标滚轮时发生。 |
PreviewDragEnter |
在输入系统报告出现以此元素为拖动目标的基础拖动事件时发生。 |
PreviewDragLeave |
在输入系统报告出现以此元素为拖动起点的基础拖动事件时发生。 |
PreviewDragOver |
在输入系统报告出现以此元素为可能放置目标的基础拖动事件时发生。 |
PreviewDrop |
在输入系统报告出现将此元素作为放置目标的基础放置事件时发生。 |
PreviewGiveFeedback |
在开始拖放操作时发生。 |
PreviewGotKeyboardFocus |
在此元素聚焦于键盘时发生。 |
PreviewKeyDown |
当焦点在该元素上时按下某个键后发生。 |
PreviewKeyUp |
当焦点在该元素上时松开某个键后发生。 |
PreviewLostKeyboardFocus |
在此元素不再聚焦于键盘时发生。 |
PreviewMouseDown |
在指针位于此元素上并且按下任意鼠标按钮时发生。 |
PreviewMouseLeftButtonDown |
在鼠标指针位于此元素上并且按下鼠标左键时发生。 |
PreviewMouseLeftButtonUp |
在鼠标指针位于此元素上并且松开鼠标左键时发生。 |
PreviewMouseMove |
在鼠标指针位于此元素上并且移动鼠标指针时发生。 |
PreviewMouseRightButtonDown |
在鼠标指针位于此元素上并且按下鼠标右键时发生。 |
PreviewMouseRightButtonUp |
在鼠标指针位于此元素上并且松开鼠标右键时发生。 |
PreviewMouseUp |
在鼠标指针位于此元素上并且松开任意鼠标按钮时发生。 |
PreviewMouseWheel |
在鼠标指针位于此元素上并且用户滚动鼠标滚轮时发生。 |
PreviewQueryContinueDrag |
在拖放操作期间键盘或鼠标按钮的状态改变时发生。 |
PreviewStylusButtonDown |
在指针位于此元素上并且按下触笔按钮时发生。 |
PreviewStylusButtonUp |
在指针位于此元素上并且松开触笔按钮时发生。 |
PreviewStylusDown |
当触笔位于元素上且触及数字化器时发生。 |
PreviewStylusInAirMove |
在触笔掠过元素但并未实际接触数字化器时发生。 |
PreviewStylusInRange |
在触笔位于此元素上并且触笔与数字化器之间的距离近到足以检测到触笔时发生。 |
PreviewStylusMove |
在触笔位于元素上并且移动触笔时发生。 数字化器在检测触笔时,触笔必须处于移动状态才会引发此事件,否则将改为引发 PreviewStylusInAirMove。 |
PreviewStylusOutOfRange |
在触笔与数字化仪之间的距离太远以致无法检测到触笔时发生。 |
PreviewStylusSystemGesture |
在用户采用某一种触笔笔势时发生。 |
PreviewStylusUp |
当触笔位于此元素上并且用户将触笔抬离数字化器时发生。 |
PreviewTextInput |
在此元素以设备无关模式获取文本时发生。 |
PreviewTouchDown |
当悬停在此元素上方的手指触摸屏幕时发生。 |
PreviewTouchMove |
当悬停在此元素上方的手指在屏幕上移动时发生。 |
PreviewTouchUp |
当悬停在此元素上方的手指从屏幕上移开时发生。 |
QueryContinueDrag |
在拖放操作期间键盘或鼠标按钮的状态改变时发生。 |
QueryCursor |
当请求显示光标时发生。 每次鼠标指针移至新位置时都会在一个元素上引发此事件,这意味着光标对象可能需要根据其新位置进行更改。 |
StylusButtonDown |
在指针位于此元素上并且按下触笔按钮时发生。 |
StylusButtonUp |
在指针位于此元素上并且松开触笔按钮时发生。 |
StylusDown |
在触笔位于此元素上且同时触及数字化器时发生。 |
StylusEnter |
在触笔进入此元素的边界时发生。 |
StylusInAirMove |
在触笔掠过元素但并未实际接触数字化器时发生。 |
StylusInRange |
在触笔位于此元素上并且触笔与数字化器之间的距离近到足以检测到触笔时发生。 |
StylusLeave |
在触笔离开元素的边界时发生。 |
StylusMove |
在触笔移到此元素上时发生。 触笔必须在位于数字化器上时移动,才会引发此事件。 否则将改为引发 StylusInAirMove。 |
StylusOutOfRange |
在触笔位于此元素上并且触笔与数字化器之间的距离太远以致无法检测到触笔时发生。 |
StylusSystemGesture |
在用户采用某一种触笔笔势时发生。 |
StylusUp |
当触笔位于此元素上并且用户将触笔抬离数字化器时发生。 |
TextInput |
在此元素以设备无关模式获取文本时发生。 |
TouchDown |
当悬停在此元素上方的手指触摸屏幕时发生。 |
TouchEnter |
在触摸屏输入从此元素边界外部移动到其内部时发生。 |
TouchLeave |
在触摸屏输入从此元素边界内部移动到其外部时发生。 |
TouchMove |
当悬停在此元素上方的手指在屏幕上移动时发生。 |
TouchUp |
当悬停在此元素上方的手指从屏幕上移开时发生。 |