Control 类

定义

表示使用 ControlTemplate 定义其外观的 UI 元素的基类。 ContentControlUserControlItemsControl 和几个实际控件的父类。

public ref class Control : FrameworkElement
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class Control : FrameworkElement
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public class Control : FrameworkElement
Public Class Control
Inherits FrameworkElement
继承
Object Platform::Object IInspectable DependencyObject UIElement FrameworkElement Control
派生
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)

注解

Control 类是添加到应用及其 UI 的许多控件的基类。 Control 类定义非常少的行为;可以将实际的 Control 元素添加到 UI 的 XAML,但通常会添加直接或间接继承自 Control 的内容,例如 ButtonListBox。 有关可以使用的控件列表,请参阅 按函数列出的控件

使用类型 ControlTemplateTemplate 属性指定控件的可视外观。 如果要更改控件的外观但保留其功能,应考虑创建新的 ControlTemplate ,而不是定义新的基于 Control 的类。 有关详细信息,请参阅 控件模板

控件是 UserControl 的父级。 UserControl 是不需要视觉状态的轻量级控件的预期基类。 尽管 UserControl 在技术上继承 Template 属性,但不能将模板应用于 UserControl

控件的隐式样式

为 XAML 定义的每个实际控件都有一个包含其默认控件模板的默认样式。 控件可以具有隐式样式,这意味着未显式设置 FrameworkElement.Style 属性。 该隐式样式可用后,可以使用该 Style 中的 Setter 元素设置控件的几乎所有其他属性。 Style 可以独立于控件逻辑的其余部分初始化控件,并且可以为每个属性设置不是基于代码的默认值的值。

隐式样式作为Windows 运行时的一部分的键控资源存在,在内部存储为 XAML 的二进制表示形式。 可以获取特定控件样式或完整样式集的副本,以了解如何定义样式和控件模板。

默认情况下,特定控件类型与它使用的隐式样式的键/名称之间的关联由 DefaultStyleKey 属性的值建立。 DefaultStyleKey 属性受保护,因此只有子类控件类的人才能更改该值。 如果只是创建控件实例(例如在 XAML UI 中声明控件),则默认样式是基于控件类型的隐式样式。 有关详细信息,请参阅 DefaultStyleKey 中的备注。 无需更改 DefaultStyleKey 值即可使用不同的样式,只需定义自己的 XAML 样式,该 样式 具有与隐式样式查找匹配的 TargetType 并作为 XAML 资源存在。 有关详细信息,请参阅 控件模板

视觉状态模型

视觉状态模型是一种技术,可在其中只修改控件模板中定义的几个属性。 更改属性值是为了向用户提供视觉反馈,以指示控件正在执行的操作,并提示可能的进一步 UI 交互。 通过将零持续时间或短持续时间情节提要动画应用于模板中的某些属性来修改控件。 还可以定义适用于状态之间转换的短持续时间动画。

视觉状态本身定义为控件模板的一部分。 每个视觉状态都有一个名称,以便控件逻辑可以调用 GoToState 方法,该方法在需要特定逻辑状态时加载每个视觉状态。 视觉状态在视觉状态组中声明,因此彼此排斥的视觉状态可以确保一次只有一个此类状态处于活动状态。 加载同一组中的另一个视觉状态后,将停止应用上一个状态的动画,但另一个组中的动画可能仍在运行并应用其更改和视觉行为。 例如,控件可能有一个用于键盘焦点的视觉指示器和一个用于指针悬停的视觉指示器。 由于这些是可以彼此独立调整且可以同时发生的 UI 模式,因此它们都是在不同的视觉状态组中定义的。

由于它是在 XAML 中定义为控件模板的一部分,因此你可以更改 UI 中使用的任何 XAML 控件的视觉状态行为。 但是,逻辑仍然基于希望在其中找到某些视觉状态组和命名视觉状态的控件。 因此,必须非常小心地提供正确命名和结构化的视觉状态,这些状态向用户显示控件行为的所有方面。 有关详细信息,请参阅视觉状态的情节提要动画控件模板中还简要介绍了视觉状态。

控件的默认视觉状态有时使用库动画。 替换控件模板或视觉状态时,应尝试保留库动画,因为这些动画是 UI 中控件外观的重要组成部分。 有关详细信息,请参阅动画概述

控件和焦点

Control 类定义了影响 UI 的键盘焦点行为的多个 API: Focus 方法、 FocusState 属性以及 IsEnabledIsTabStop 属性。 启用键盘焦点是确保 UI 可访问的一个重要部分,因为每个可聚焦元素都会成为 UI 的 Tab 键顺序的一部分。 通常只有交互式 UI 元素才能接收键盘焦点。 例如, TextBox 是交互式的,因为用户可以键入文本,而 TextBlock 不是交互式的,因为文本是只读的。 派生自 Control 的大多数类都是合法交互的,因此可以集中它们并且应按 Tab 键顺序进行。

为了使焦点可聚焦,其中每个参数都必须为 true:

  • 可见性可见
  • IsEnabledtrue
  • IsTabStoptrue
  • 控件必须使用加载 (加载的 模板实例化控件,连接到应用的根视觉对象) 如果希望控件不可聚焦,可以将 IsTabStop 设置为 false。 但是,如果你不希望控件具有焦点的原因是它在你的 UI 中不是交互式的,则你可能希望将 IsEnabled 设置为 false ,使每个人都明显缺乏交互。 许多控件具有为 IsEnabled =false 调用的预定义视觉状态,例如标签中的“灰显”文本。

焦点更改可能会触发 GotFocusLostFocus 事件。 虽然“FocusedElement”值 (通过 GetFocusedElement 方法) 立即更新,但 GotFocusLostFocus 的更改通知会异步发生。 这种异步对焦设计旨在避免当控件逻辑对焦点更改做出反应太快时,视觉状态转换闪烁。

Focus 方法允许以编程方式将键盘焦点引入控件。 调用此方法时要谨慎,当用户不期望键盘焦点时移动键盘焦点可能会具有侵入性。 焦点main方案是在加载整个 UI 页面时设置第一个键盘焦点,或者在父控件容器收到顶级焦点后将焦点设置为控件的特定部分, (例如将文本框聚焦在组合框) 。 有关详细信息,请参阅 焦点FocusState 跟踪焦点是编程的还是用户驱动的,这会对视觉状态产生差异,尤其是所有控件都应具有的键盘焦点的视觉焦点指示器。

OnEvent 事件处理程序重写

每个 OnEvent 方法表示对应 UIElement 事件的预连接事件处理程序。 派生自 Control 的实际控件可以重写 OnEvent 方法,并使用它为该输入事件提供特定于控件的处理和行为。 最常见的方案是使用 事件处理程序在事件数据中将事件标记为 “已处理 ”。 在调用在控件实例上连接的任何事件处理程序之前,控件代码首先有机会处理此事件。 当事件数据标记为“ 已处理”时,将不会调用控件实例上其他处理程序(如控件实例上的处理程序)。 此外,该事件不会冒泡。

由于它直接在 Control 上实现, 因此 On事件 方法具有空的实现。 但控件层次结构中的每个上级可能都提供了实现。 你将无法看到此实现,因为它是内部本机代码。 在某些情况下,控件已具有标记已处理事件的 On事件替代。 为控件提供初始 OnEvent 重写后,进一步从自己的控件类派生的任何控件也将继承定义的 OnEvent 重写。 使用的任何实例也具有该行为。

注意

应用代码仍可以处理可能已被控件的 On Event 方法逻辑标记为“已处理”的事件,但它们需要使用 UIElement.AddHandler 方法的 handledEventsToo 参数。 有关详细信息,请参阅 UIElement.AddHandler事件和路由事件概述

Control 类定义多个受保护的虚拟方法,每个方法都与框架级输入事件相关联。 这些方法旨在为输入事件提供预先连接的事件处理程序,以便控件可以强制该控件及其所有实例使用某些输入行为。 例如,UIElement 定义了 PointerPressed 事件。 控件使用空定义定义 OnPointerPressed 方法。 在基本 Control 构造函数中,所有相关输入事件的事件连接包括 OnEvent 方法作为侦听器/处理程序,该方法最初不执行任何操作。 但是,作为控件作者,现在更改输入事件的行为只需为 OnEvent 方法提供新的重写定义 (,请确保构造函数调用基) 。 该行为将继承到所有实例或子类,除非另一个子类类再次重写它。 由于 OnEvent 事件首先按顺序排列,因此在任何 UI 定义 XAML 之前,它们都可以调整事件数据,并可能更改其他侦听器看到的有关该事件的条件。

特定控件类中的现有 OnEvent 定义可能会影响你作为控件的使用者,即使你自己尚未重写任何 OnEvent 方法。 这是因为现有的 On事件 定义可能已为事件提供处理,该事件将 Handled 属性值设置为 true 在某些事件的事件数据中。 这将阻止基于实例的事件处理甚至无法看到事件,并阻止调用处理程序。 此处发生的情况是,有一个有意的控件设计,该设计强制要求某些事件对控件来说并不重要,因为它们是低级别事件,与控制逻辑冲突,或者控件具有替换逻辑。 一个突出的示例是 ButtonBase 类。 ButtonBase 类有两种行为,它通过 OnPointerPressedOnKeyDown 的本机重写强制执行这些行为。 之所以这样做,是因为它在低级别组合了各种输入模式,并将它们报告为特定于控件的 Click 事件。 对于 PointerPressed 事件处理程序,如果尝试在 Button 实例上处理此处理程序,则不会调用处理程序。 这是因为本机 OnPointerPressedHandled 设置为 true ,并阻止 PointerPressed 传播到实例和应用代码。 对于 OnKeyDown,逻辑只是查找某些键, (Ctrl 和 Enter) 因此实例处理程序仍然可以调用,只要它不同时查找这些键。

注意

对于某些输入事件,实际上有一种方法可以绕过对 输入的 On事件 方法的本机处理。 为此,需要使用 addHandler 方法与 handledEventsToo 连接处理程序。 有关详细信息,请参阅 AddHandler事件和路由事件概述

继承到文本元素部件的文本属性

控件定义了多个与文本呈现相关的属性。 它们是:

显然,并非每个控件都旨在显示其中的文本。 例如,在 AppBarSeparator 上设置 FontFamily 是合法的,但绝对无效。 Control 在基类级别定义这些属性的原因是使控件模板能够轻松使用 {TemplateBinding} 标记扩展 将顶级文本属性应用于模板中存在的一个或多个文本元素部件。 例如,如果查看 DatePicker 的控件模板,将看到根是一个容器,并且该容器中更深入的是几个实际接受文本输入的 ComboBox 部件。 其中每一个都使用语句(例如FontWeight="{TemplateBinding FontWeight}",在 DatePicker 上设置顶级 FontWeight)供内部的各个部分使用。

控件上的文本属性还会隐式继承其中具有 显示文本的 ContentPresenter 的控件。 例如,如果在 Button 上设置 FontSize,则其模板或 ContentPresenter 部件中没有显式的 {TemplateBinding} 标记扩展,用于控制模板对顶级 FontSize 值执行的操作。 但是,ContentPresenter.FontSize 根据模板定义中的上下文隐式继承 Control.FontSize 值,因此将使用设置的 Control.FontSize 显示按钮内的文本。

XAML 附加属性

Control 是多个 XAML 附加属性的主机服务类。

为了支持 XAML 处理器对附加属性的访问,以及向代码公开等效 的 getset 操作,每个 XAML 附加属性都有一对 Get 和 Set 访问器方法。 在代码中获取或设置值的另一种方法是使用依赖属性系统,调用 GetValueSetValue ,并将标识符字段作为依赖属性标识符传递。

附加属性 说明
IsTemplateFocusTarget 获取或设置一个值,该值指示此元素是否是具有焦点视觉对象的控件模板的一部分。
IsTemplateKeyTipTarget 获取或设置一个值,该值指示此元素是否是放置 的控件模板 KeyTip 的一部分。

版本历史记录

Windows 版本 SDK 版本 已添加值
1607 14393 ElementSoundMode
1607 14393 FocusDisengaged
1607 14393 FocusEngaged
1607 14393 IsFocusEngaged
1607 14393 IsFocusEngagementEnabled
1607 14393 RemoveFocusEngagement
1607 14393 RequiresPointer
1607 14393 XYFocusDown
1607 14393 XYFocusLeft
1607 14393 XYFocusRight
1607 14393 XYFocusUp
1703 15063 DefaultStyleResourceUri
1703 15063 GetIsTemplateKeyTipTarget
1703 15063 SetIsTemplateKeyTipTarget
1709 16299 OnCharacterReceived
1709 16299 OnPreviewKeyDown
1709 16299 OnPreviewKeyUp
1809 17763 BackgroundSizing
1809 17763 CornerRadius

构造函数

Control()

Control 派生类提供基类初始化行为。

属性

AccessKey

获取或设置此元素的访问键 (助记) 。

(继承自 UIElement)
AccessKeyScopeOwner

获取或设置一个源元素,该元素提供此元素的访问键范围,即使它不在源元素的可视化树中也是如此。

(继承自 UIElement)
ActualHeight

获取 FrameworkElement 的呈现高度。 请参阅“备注”。

(继承自 FrameworkElement)
ActualOffset

获取此 UIElement 相对于其父级的位置,该位置在布局过程的排列过程期间计算。

(继承自 UIElement)
ActualSize

获取此 UIElement 在布局过程的排列过程中计算的大小。

(继承自 UIElement)
ActualTheme

获取元素当前使用的 UI 主题,该主题可能与 RequestedTheme 不同。

(继承自 FrameworkElement)
ActualWidth

获取 FrameworkElement 的呈现宽度。 请参阅“备注”。

(继承自 FrameworkElement)
AllowDrop

获取或设置一个值,该值确定此 UIElement 是否可以作为拖放操作的放置目标。

(继承自 UIElement)
AllowFocusOnInteraction

获取或设置一个值,该值指示当用户与元素交互时是否自动获取焦点。

(继承自 FrameworkElement)
AllowFocusWhenDisabled

获取或设置禁用的控件是否可以接收焦点。

(继承自 FrameworkElement)
Background

获取或设置提供控件背景的画笔。

BackgroundProperty

标识 Background 依赖属性。

BackgroundSizing

获取或设置一个值,该值指示背景相对于此元素边框的延伸程度。

BackgroundSizingProperty

标识 BackgroundSizing 依赖属性。

BaseUri

获取统一资源标识符 (URI) ,表示 XAML 加载时 XAML 构造对象的基本统一资源标识符 (URI) 。 此属性在运行时用于统一资源标识符 (URI) 解析。

(继承自 FrameworkElement)
BorderBrush

获取或设置描述控件边框填充的画笔。

BorderBrushProperty

标识 BorderBrush 依赖属性。

BorderThickness

获取或设置控件的边框宽度。

BorderThicknessProperty

标识 BorderThickness 依赖属性。

CacheMode

获取或设置一个值,该值指示应尽可能将呈现的内容缓存为复合位图。

(继承自 UIElement)
CanBeScrollAnchor

获取或设置一个值,该值指示 UIElement 是否可以成为滚动定位的候选项。

(继承自 UIElement)
CanDrag

获取或设置一个值,该值指示是否可以在拖放操作中将元素作为数据拖动。

(继承自 UIElement)
CenterPoint

获取或设置 元素的中心点,该中心点是关于发生旋转或缩放的点。 影响元素的呈现位置。

(继承自 UIElement)
CharacterSpacing

获取或设置字符之间的统一间距,单位为 1/1000 em。

CharacterSpacingProperty

标识 CharacterSpacing 依赖属性。

Clip

获取或设置用于定义 UIElement 内容的大纲的 RectangleGeometry

(继承自 UIElement)
CompositeMode

获取或设置一个属性,该属性声明元素在其父布局和窗口中的替代组合和混合模式。 这与混合 XAML/Microsoft DirectX UI 中涉及的元素相关。

(继承自 UIElement)
ContextFlyout

获取或设置与此元素关联的浮出控件。

(继承自 UIElement)
CornerRadius

获取或设置控件边框角的半径。

CornerRadiusProperty

标识 CornerRadius 依赖属性。

DataContext

获取或设置 FrameworkElement 的数据上下文。 数据上下文的常见用途是 当 FrameworkElement 使用 {Binding} 标记扩展并参与数据绑定时。

(继承自 FrameworkElement)
DefaultStyleKey

获取或设置引用控件的默认样式的键。 自定义控件的作者使用此属性更改其控件使用的样式的默认值。

DefaultStyleKeyProperty

标识 DefaultStyleKey 依赖属性。

DefaultStyleResourceUri

获取或设置包含控件的默认样式的资源文件的路径。

DefaultStyleResourceUriProperty

标识 DefaultStyleResourceUri 依赖属性。

DesiredSize

获取此 UIElement 在布局过程的度量传递期间计算的大小。

(继承自 UIElement)
Dispatcher

获取与此 对象关联的 CoreDispatcherCoreDispatcher 表示可以访问 UI 线程上的 DependencyObject 的工具,即使代码是由非 UI 线程启动的。

(继承自 DependencyObject)
ElementSoundMode

获取或设置一个值,该值指定控件是否播放声音的首选项。

ElementSoundModeProperty

标识 ElementSoundMode 依赖属性。

ExitDisplayModeOnAccessKeyInvoked

获取或设置一个值,该值指定在调用访问密钥时是否消除访问密钥显示。

(继承自 UIElement)
FlowDirection

获取或设置文本和其他 UI 元素在控制其布局的任何父元素中的流动方向。 此属性可以设置为 LeftToRightRightToLeft。 在任何元素上将 FlowDirection 设置为 RightToLeft 会将对齐方式设置为右对齐,将阅读顺序设置为从右到左,并将控件的布局设置为从右到左流动。

(继承自 FrameworkElement)
FocusState

获取一个值,该值指定此控件是否具有焦点,以及获取焦点的模式。

FocusStateProperty

标识 FocusState 依赖属性。

FocusVisualMargin

获取或设置 FrameworkElement 的焦点视觉对象的外部边距。

(继承自 FrameworkElement)
FocusVisualPrimaryBrush

获取或设置用于为 FrameworkElement 绘制或Reveal焦点视觉对象的外边框HighVisibility的画笔。

(继承自 FrameworkElement)
FocusVisualPrimaryThickness

获取或设置 FrameworkElementHighVisibilityReveal焦点视觉对象的外边框的粗细。

(继承自 FrameworkElement)
FocusVisualSecondaryBrush

获取或设置用于为 FrameworkElement 绘制或Reveal焦点视觉对象的内边框HighVisibility的画笔。

(继承自 FrameworkElement)
FocusVisualSecondaryThickness

获取或设置 FrameworkElementHighVisibilityReveal焦点视觉对象的内边框的粗细。

(继承自 FrameworkElement)
FontFamily

获取或设置用于显示控件中的文本的字体。

FontFamilyProperty

标识 FontFamily 依赖属性。

FontSize

获取或设置此控件中文本的大小。

FontSizeProperty

标识 FontSize 依赖属性。

FontStretch

获取或设置字体在屏幕上紧缩或加宽的程度。

FontStretchProperty

标识 FontStretch 依赖属性。

FontStyle

获取或设置呈现文本的样式。

FontStyleProperty

标识 FontStyle 依赖属性。

FontWeight

获取或设置指定字体的粗细。

FontWeightProperty

标识 FontWeight 依赖属性。

Foreground

获取或设置一个用于描述前景色的画笔。

ForegroundProperty

标识 前台 依赖属性。

Height

获取或设置 FrameworkElement 的建议高度。

(继承自 FrameworkElement)
HighContrastAdjustment

获取或设置一个值,该值指示框架是否在启用高对比度主题时自动调整元素的视觉属性。

(继承自 UIElement)
HorizontalAlignment

获取或设置在布局父级(如面板或项控件)中组合时应用于 FrameworkElement 的水平对齐特征。

(继承自 FrameworkElement)
HorizontalContentAlignment

获取或设置控件内容的水平对齐方式。

HorizontalContentAlignmentProperty

标识 HorizontalContentAlignment 依赖属性。

IsAccessKeyScope

获取或设置一个值,该值指示元素是否定义其自己的访问键范围。

(继承自 UIElement)
IsDoubleTapEnabled

获取或设置一个值,该值确定 DoubleTapped 事件是否可以源自该元素。

(继承自 UIElement)
IsEnabled

获取或设置一个值,该值指示用户是否可以与控件交互。

IsEnabledProperty

标识 IsEnabled 依赖属性。

IsFocusEngaged

获取或设置一个值,该值指示焦点是否受限于游戏板/远程交互) 的控制边界 (。

IsFocusEngagedProperty

标识 IsFocusEngaged 依赖属性。

IsFocusEngagementEnabled

获取或设置一个值,该值指示是否可以在游戏板/远程交互) (控制边界内限制焦点。

IsFocusEngagementEnabledProperty

标识 IsFocusEngagementEnabled 依赖属性。

IsHitTestVisible

获取或设置此 UIElement 的包含区域是否可以为命中测试返回 true 值。

(继承自 UIElement)
IsHoldingEnabled

获取或设置一个值,该值确定 Holding 事件是否可以源自该元素。

(继承自 UIElement)
IsLoaded

获取一个值,该值指示元素是否已添加到元素树中并已准备好进行交互。

(继承自 FrameworkElement)
IsRightTapEnabled

获取或设置一个值,该值确定 RightTapped 事件是否可以源自该元素。

(继承自 UIElement)
IsTabStop

获取或设置一个值,该值指示是否将某个控件包含在 Tab 导航中。

IsTabStopProperty

标识 IsTabStop 依赖属性。

IsTapEnabled

获取或设置一个值,该值确定 点击 事件是否可以源自该元素。

(继承自 UIElement)
IsTemplateFocusTargetProperty

标识 Control.IsTemplateFocusTarget XAML 附加属性。

IsTemplateKeyTipTargetProperty

标识 Control.IsTemplateKeyTipTarget XAML 附加属性。

IsTextScaleFactorEnabled

获取或设置是否启用自动文本放大,以反映系统文本大小设置。

IsTextScaleFactorEnabledProperty

标识 IsTextScaleFactorEnabled 依赖属性。

KeyboardAcceleratorPlacementMode

获取或设置一个值,该值指示控件 工具提示 是否显示其关联键盘快捷键的组合。

(继承自 UIElement)
KeyboardAcceleratorPlacementTarget

获取或设置一个值,该值指示显示快捷键组合的控件 工具提示

(继承自 UIElement)
KeyboardAccelerators

获取使用键盘调用操作的组合键的集合。

加速键通常分配给按钮或菜单项。

显示各种菜单项的键盘快捷键的菜单示例
显示各种菜单项的键盘快捷键的菜单示例

(继承自 UIElement)
KeyTipHorizontalOffset

获取或设置一个值,该值指示键提示相对于 UIElement 的左或右放置位置。

(继承自 UIElement)
KeyTipPlacementMode

获取或设置一个值,该值指示访问键提示相对于 UIElement 边界放置的位置。

(继承自 UIElement)
KeyTipTarget

获取或设置一个值,该值指示访问键提示所针对的元素。

(继承自 UIElement)
KeyTipVerticalOffset

获取或设置一个值,该值指示键提示相对于 UI 元素向上或向下放置的距离。

(继承自 UIElement)
Language

获取或设置适用于 FrameworkElement 以及对象表示形式和 UI 中当前 FrameworkElement 的所有子元素的本地化/全球化语言信息。

(继承自 FrameworkElement)
Lights

获取附加到此元素的 XamlLight 对象的集合。

(继承自 UIElement)
ManipulationMode

获取或设置用于 UIElement 行为和与手势交互的 ManipulationModes 值。 通过设置此值,可以在应用代码中处理此元素中的操作事件。

(继承自 UIElement)
Margin

获取或设置 FrameworkElement 的外部边距。

(继承自 FrameworkElement)
MaxHeight

获取或设置 FrameworkElement 的最大高度约束。

(继承自 FrameworkElement)
MaxWidth

获取或设置 FrameworkElement 的最大宽度约束。

(继承自 FrameworkElement)
MinHeight

获取或设置 FrameworkElement 的最小高度约束。

(继承自 FrameworkElement)
MinWidth

获取或设置 FrameworkElement 的最小宽度约束。

(继承自 FrameworkElement)
Name

获取或设置对象的标识名称。 当 XAML 处理器从 XAML 标记创建对象树时,运行时代码可以按此名称引用 XAML 声明的对象。

(继承自 FrameworkElement)
Opacity

获取或设置对象的不透明度程度。

(继承自 UIElement)
OpacityTransition

获取或设置对 Opacity 属性的更改进行动画处理的 ScalarTransition。

(继承自 UIElement)
Padding

获取或设置控件内部的填充边距。

PaddingProperty

标识 Padding 依赖属性。

Parent

获取对象树中此 FrameworkElement 的父对象。

(继承自 FrameworkElement)
PointerCaptures

获取所有捕获的指针的集合,表示为 Pointer 值。

(继承自 UIElement)
Projection

获取或设置呈现此元素时要应用的透视投影 (三维效果) 。

(继承自 UIElement)
RenderSize

获取 UIElement 的最终呈现大小。 不建议使用,请参阅备注。

(继承自 UIElement)
RenderTransform

获取或设置影响 UIElement 呈现位置的转换信息。

(继承自 UIElement)
RenderTransformOrigin

获取或设置 RenderTransform 声明的任何可能呈现转换相对于 UIElement 边界的原点。

(继承自 UIElement)
RequestedTheme

获取或设置 UIElement (使用的 UI 主题及其子元素) 用于资源确定。 使用 RequestedTheme 指定的 UI 主题可以替代应用级 RequestedTheme

(继承自 FrameworkElement)
RequiresPointer

获取或设置 UI 元素是否支持鼠标模式,该模式模拟非指针输入设备(如游戏板或遥控器)的指针交互体验。

RequiresPointerProperty

标识 RequiresPointer 依赖属性。

Resources

获取本地定义的资源字典。 在 XAML 中,可以通过 XAML 隐式集合语法将资源项建立为属性元素的 frameworkElement.Resources 子对象元素。

(继承自 FrameworkElement)
Rotation

获取或设置顺时针旋转的角度(以度为单位)。 相对于 RotationAxis 和 CenterPoint 旋转。 影响元素的呈现位置。

(继承自 UIElement)
RotationAxis

获取或设置旋转元素的轴。

(继承自 UIElement)
RotationTransition

获取或设置 ScalarTransition,该 ScalarTransition 对 Rotation 属性的更改进行动画处理。

(继承自 UIElement)
Scale

获取或设置 元素的刻度。 相对于元素的 CenterPoint 缩放。 影响元素的呈现位置。

(继承自 UIElement)
ScaleTransition

获取或设置 Vector3Transition,该 Vector3Transition 对 Scale 属性的更改进行动画处理。

(继承自 UIElement)
Shadow

获取或设置 由 元素投射的阴影效果。

(继承自 UIElement)
Style

获取或设置在布局和呈现期间为此对象应用的实例 Style

(继承自 FrameworkElement)
TabFocusNavigation

获取或设置一个值,该值修改 tabbing 和 TabIndex 对此控件的工作方式。

(继承自 UIElement)
TabIndex

获取或设置一个值,该值指示当用户使用 Tab 键在应用 UI 中导航时元素接收焦点的顺序。

TabIndexProperty

标识 TabIndex 依赖属性。

TabNavigation

获取或设置一个值,该值修改 Tabbing 和 TabIndex 对此控件的工作方式。

注意

对于Windows 10 创意者更新 (内部版本 10.0.15063) 及更新版本,TabFocusNavigation 属性在 UIElement 基类上可用,以包括不使用 ControlTemplate 的选项卡序列中的对象。

TabNavigationProperty

标识 TabNavigation 依赖属性。

Tag

获取或设置可用于存储有关此对象的自定义信息的任意对象值。

(继承自 FrameworkElement)
Template

获取或设置控件模板。 控件模板在 UI 中定义控件的视觉外观,并在 XAML 标记中定义。

TemplateProperty

标识 Template 依赖属性。

Transform3D

获取或设置呈现此元素时要应用的三维转换效果。

(继承自 UIElement)
TransformMatrix

获取或设置要应用于 元素的转换矩阵。

(继承自 UIElement)
Transitions

获取或设置应用于 UIElementTransition 样式元素的集合。

(继承自 UIElement)
Translation

获取或设置元素的 x、y 和 z 呈现位置。

(继承自 UIElement)
TranslationTransition

获取或设置对 Translation 属性的更改进行动画处理的 Vector3Transition。

(继承自 UIElement)
Triggers

获取为 FrameworkElement 定义的动画触发器的集合。 不常用。 请参阅“备注”。

(继承自 FrameworkElement)
UIContext

获取 元素的上下文标识符。

(继承自 UIElement)
UseLayoutRounding

获取或设置一个值,该值确定对象及其可视子树的呈现是否应使用使呈现与整个像素对齐的舍入行为。

(继承自 UIElement)
UseSystemFocusVisuals

获取或设置一个值,该值指示控件是使用由系统绘制的焦点视觉对象还是控件模板中定义的视觉对象。

UseSystemFocusVisualsProperty

标识 UseSystemFocusVisuals 依赖属性。

VerticalAlignment

获取或设置在父对象(如面板或项控件)中组合时应用于 FrameworkElement 的垂直对齐特征。

(继承自 FrameworkElement)
VerticalContentAlignment

获取或设置控件内容的垂直对齐方式。

VerticalContentAlignmentProperty

标识 VerticalContentAlignment 依赖属性。

Visibility

获取或设置 UIElement 的可见性。 不可见的 UIElement 不会呈现,也不会将其所需大小传达给布局。

(继承自 UIElement)
Width

获取或设置 FrameworkElement 的宽度。

(继承自 FrameworkElement)
XamlRoot

获取或设置 XamlRoot 在其中查看此元素的 。

(继承自 UIElement)
XYFocusDown

获取或设置当用户按下方向键 (方向键) 时获得焦点的对象。

XYFocusDownNavigationStrategy

获取或设置一个值,该值指定用于确定向下导航的目标元素的策略。

(继承自 UIElement)
XYFocusDownProperty

标识 XYFocusDown 依赖属性。

XYFocusKeyboardNavigation

获取或设置一个值,该值使用键盘方向箭头启用或禁用导航。

(继承自 UIElement)
XYFocusLeft

获取或设置当用户向左按方向键 (方向键) 时获得焦点的对象。

XYFocusLeftNavigationStrategy

获取或设置一个值,该值指定用于确定左侧导航的目标元素的策略。

(继承自 UIElement)
XYFocusLeftProperty

标识 XYFocusLeft 依赖属性。

XYFocusRight

获取或设置当用户向右按方向键 (方向键时获得焦点的对象) 。

XYFocusRightNavigationStrategy

获取或设置一个值,该值指定用于确定右侧导航的目标元素的策略。

(继承自 UIElement)
XYFocusRightProperty

标识 XYFocusRight 依赖属性。

XYFocusUp

获取或设置当用户按下方向键 (方向键) 时获得焦点的对象。

XYFocusUpNavigationStrategy

获取或设置一个值,该值指定用于确定向上导航的目标元素的策略。

(继承自 UIElement)
XYFocusUpProperty

标识 XYFocusUp 依赖属性。

附加属性

IsTemplateFocusTarget

获取或设置一个值,该值指示此元素是否是具有焦点视觉对象的控件模板的一部分。

IsTemplateKeyTipTarget

获取或设置一个值,该值指示此元素是否是放置键提示的控件模板的一部分。

方法

AddHandler(RoutedEvent, Object, Boolean)

为指定的路由事件添加路由事件处理程序,并将该处理程序添加到当前元素的处理程序集合中。 将 handledEventsToo 指定为 true 以调用提供的处理程序,即使在其他位置处理事件也是如此。

(继承自 UIElement)
ApplyTemplate()

加载相关的控件模板,以便可以引用其部件。

Arrange(Rect)

定位子对象并确定 UIElement 的大小。 为其子元素实现自定义布局的父对象应从其布局重写实现中调用此方法,以形成递归布局更新。

(继承自 UIElement)
ArrangeOverride(Size)

提供布局的“排列”传递的行为。 类可以重写此方法,以定义自己的“排列”传递行为。

(继承自 FrameworkElement)
CancelDirectManipulations()

取消正在进行的直接操作处理, (系统定义的平移/缩放) 包含当前 UIElement 的任何 ScrollViewer 父级。

(继承自 UIElement)
CapturePointer(Pointer)

将指针捕获设置为 UIElement。 捕获后,只有具有捕获的元素才会触发与指针相关的事件。

(继承自 UIElement)
ClearValue(DependencyProperty)

清除依赖属性的本地值。

(继承自 DependencyObject)
FindName(String)

检索具有指定标识符名称的对象。

(继承自 FrameworkElement)
FindSubElementsForTouchTargeting(Point, Rect)

使 UIElement 子类能够公开有助于解析触摸目标的子元素。

(继承自 UIElement)
Focus(FocusState)

尝试在控件上设置焦点。

GetAnimationBaseValue(DependencyProperty)

返回为依赖属性建立的任何基值,该基值适用于动画未处于活动状态的情况。

(继承自 DependencyObject)
GetBindingExpression(DependencyProperty)

返回 BindingExpression ,它代表指定属性上的绑定。

(继承自 FrameworkElement)
GetChildrenInTabFocusOrder()

允许 UIElement 子类公开参与 Tab 焦点的子元素。

(继承自 UIElement)
GetIsTemplateFocusTarget(FrameworkElement)

获取目标元素的 Control.IsTemplateFocusTarget XAML 附加属性的值。

GetIsTemplateKeyTipTarget(DependencyObject)

获取目标元素的 Control.IsTemplateKeyTipTarget XAML 附加属性的值。

GetTemplateChild(String)

检索实例化 ControlTemplate 可视化树中的命名元素。

GetValue(DependencyProperty)

DependencyObject 返回依赖属性的当前有效值。

(继承自 DependencyObject)
GoToElementStateCore(String, Boolean)

在派生类中实现时,在代码中为控件模板启用可视化树的按状态构造,而不是在控件启动时加载所有状态的 XAML。

(继承自 FrameworkElement)
InvalidateArrange()

使 UIElement 的排列状态 (布局) 无效。 无效后, UIElement 将更新其布局,这将异步发生。

(继承自 UIElement)
InvalidateMeasure()

使 UIElement 的度量状态 (布局) 无效。

(继承自 UIElement)
InvalidateViewport()

使用于计算有效视区的 UIElement视区状态失效。

(继承自 FrameworkElement)
Measure(Size)

汇报 UIElementDesiredSize。 通常,为其布局子级实现自定义布局的对象从其自己的 MeasureOverride 实现中调用此方法,以形成递归布局更新。

(继承自 UIElement)
MeasureOverride(Size)

为布局周期的“度量”传递提供行为。 类可以重写此方法以定义其自己的“Measure”传递行为。

(继承自 FrameworkElement)
OnApplyTemplate()

每当应用程序代码或内部进程 (例如重新生成布局传递) 调用 ApplyTemplate 时调用。 简单来说,这意味着在 UI 元素在应用中显示之前调用 方法。 重写此方法以影响类的默认模板后逻辑。

(继承自 FrameworkElement)
OnBringIntoViewRequested(BringIntoViewRequestedEventArgs)

BringIntoViewRequested 事件发生之前调用。

(继承自 UIElement)
OnCharacterReceived(CharacterReceivedRoutedEventArgs)

CharacterReceived 事件发生之前调用。

OnCreateAutomationPeer()

在派生类中实现时,为 Microsoft UI 自动化基础结构返回特定于类的 AutomationPeer 实现。

(继承自 UIElement)
OnDisconnectVisualChildren()

重写此方法以实现从类特定内容或子属性中删除项时布局和逻辑的行为方式。

(继承自 UIElement)
OnDoubleTapped(DoubleTappedRoutedEventArgs)

DoubleTapped 事件发生之前调用。

OnDragEnter(DragEventArgs)

DragEnter 事件发生之前调用。

OnDragLeave(DragEventArgs)

DragLeave 事件发生之前调用。

OnDragOver(DragEventArgs)

DragOver 事件发生之前调用。

OnDrop(DragEventArgs)

Drop 事件发生之前调用。

OnGotFocus(RoutedEventArgs)

GotFocus 事件发生之前调用。

OnHolding(HoldingRoutedEventArgs)

“保留 ”事件发生之前调用。

OnKeyboardAcceleratorInvoked(KeyboardAcceleratorInvokedEventArgs)

在应用中处理 键盘快捷方式 (或快捷键) 时调用。 重写此方法以处理调用键盘快捷键时应用响应的方式。

(继承自 UIElement)
OnKeyDown(KeyRoutedEventArgs)

KeyDown 事件发生之前调用。

OnKeyUp(KeyRoutedEventArgs)

KeyUp 事件发生之前调用。

OnLostFocus(RoutedEventArgs)

LostFocus 事件发生之前调用。

OnManipulationCompleted(ManipulationCompletedRoutedEventArgs)

ManipulationCompleted 事件发生之前调用。

OnManipulationDelta(ManipulationDeltaRoutedEventArgs)

ManipulationDelta 事件发生之前调用。

OnManipulationInertiaStarting(ManipulationInertiaStartingRoutedEventArgs)

ManipulationInertiaStarting 事件发生之前调用。

OnManipulationStarted(ManipulationStartedRoutedEventArgs)

ManipulationStarted 事件发生之前调用。

OnManipulationStarting(ManipulationStartingRoutedEventArgs)

ManipulationStarting 事件发生之前调用。

OnPointerCanceled(PointerRoutedEventArgs)

PointerCanceled 事件发生之前调用。

OnPointerCaptureLost(PointerRoutedEventArgs)

PointerCaptureLost 事件发生之前调用。

OnPointerEntered(PointerRoutedEventArgs)

PointerEntered 事件发生之前调用。

OnPointerExited(PointerRoutedEventArgs)

PointerExited 事件发生之前调用。

OnPointerMoved(PointerRoutedEventArgs)

PointerMoved 事件发生之前调用。

OnPointerPressed(PointerRoutedEventArgs)

PointerPressed 事件发生之前调用。

OnPointerReleased(PointerRoutedEventArgs)

PointerReleased 事件发生之前调用。

OnPointerWheelChanged(PointerRoutedEventArgs)

PointerWheelChanged 事件发生之前调用。

OnPreviewKeyDown(KeyRoutedEventArgs)

PreviewKeyDown 事件发生之前调用。

OnPreviewKeyUp(KeyRoutedEventArgs)

PreviewKeyUp 事件发生之前调用。

OnProcessKeyboardAccelerators(ProcessKeyboardAcceleratorEventArgs)

在应用中处理 键盘快捷方式 (或快捷键) 之前调用。 每当应用程序代码或内部进程调用 ProcessKeyboardAccelerators 时调用。 重写此方法以影响默认加速器处理。

(继承自 UIElement)
OnRightTapped(RightTappedRoutedEventArgs)

RightTapped 事件发生之前调用。

OnTapped(TappedRoutedEventArgs)

Tapped 事件发生之前调用。

PopulatePropertyInfo(String, AnimationPropertyInfo)

定义可进行动画处理的属性。

(继承自 UIElement)
PopulatePropertyInfoOverride(String, AnimationPropertyInfo)

在派生类中重写时,定义一个可以进行动画处理的属性。

(继承自 UIElement)
ReadLocalValue(DependencyProperty)

如果设置了本地值,则返回依赖属性的本地值。

(继承自 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

注册一个通知函数,用于侦听此 DependencyObject 实例上特定 DependencyProperty 的更改。

(继承自 DependencyObject)
ReleasePointerCapture(Pointer)

释放指针捕获,以便通过此 UIElement 捕获一个特定指针。

(继承自 UIElement)
ReleasePointerCaptures()

释放此元素保留的所有指针捕获。

(继承自 UIElement)
RemoveFocusEngagement()

从控件边界释放焦点,该控件具有游戏板/远程交互) 的焦点参与 (。

RemoveHandler(RoutedEvent, Object)

从此 UIElement 中删除指定的路由事件处理程序。 通常,有问题的处理程序是由 AddHandler 添加的。

(继承自 UIElement)
SetBinding(DependencyProperty, BindingBase)

使用提供的绑定对象将绑定附加到 FrameworkElement

(继承自 FrameworkElement)
SetIsTemplateFocusTarget(FrameworkElement, Boolean)

设置目标元素的 Control.IsTemplateFocusTarget XAML 附加属性的值。

SetIsTemplateKeyTipTarget(DependencyObject, Boolean)

设置目标元素的 Control.IsTemplateKeyTipTarget XAML 附加属性的值。

SetValue(DependencyProperty, Object)

设置 DependencyObject 上依赖属性的本地值。

(继承自 DependencyObject)
StartAnimation(ICompositionAnimationBase)

开始元素上的指定动画。

(继承自 UIElement)
StartBringIntoView()

启动对 XAML 框架的请求,以将元素引入其包含的任何可滚动区域中的视图。

(继承自 UIElement)
StartBringIntoView(BringIntoViewOptions)

启动对 XAML 框架的请求,以使用指定选项将元素引入视图。

(继承自 UIElement)
StartDragAsync(PointerPoint)

启动拖放操作。

(继承自 UIElement)
StopAnimation(ICompositionAnimationBase)

停止元素上的指定动画。

(继承自 UIElement)
TransformToVisual(UIElement)

返回一个转换对象,该对象可用于将坐标从 UIElement 转换为指定对象。

(继承自 UIElement)
TryInvokeKeyboardAccelerator(ProcessKeyboardAcceleratorEventArgs)

尝试通过搜索 UIElement 的整个可视化树来 (或快捷键) 调用键盘快捷方式。

(继承自 UIElement)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

取消以前通过调用 RegisterPropertyChangedCallback 注册的更改通知。

(继承自 DependencyObject)
UpdateLayout()

确保针对布局正确更新 UIElement 的子对象的所有位置。

(继承自 UIElement)

事件

AccessKeyDisplayDismissed

在不应再显示访问密钥时发生。

(继承自 UIElement)
AccessKeyDisplayRequested

当用户请求显示访问密钥时发生。

(继承自 UIElement)
AccessKeyInvoked

当用户完成访问密钥序列时发生。

(继承自 UIElement)
ActualThemeChanged

在 ActualTheme 属性值更改时发生。

(继承自 FrameworkElement)
BringIntoViewRequested

在此元素或其后代之一上调用 StartBringIntoView 时发生。

(继承自 UIElement)
CharacterReceived

输入队列接收到单个组合字符时发生。

(继承自 UIElement)
ContextCanceled

当上下文输入手势继续转换为操作手势时发生,以通知元素不应打开上下文浮出控件。

(继承自 UIElement)
ContextRequested

当用户完成上下文输入手势(例如右键单击)时发生。

(继承自 UIElement)
DataContextChanged

FrameworkElement.DataContext 属性的值更改时发生。

(继承自 FrameworkElement)
DoubleTapped

当此元素的命中测试区域发生其他未经处理的 DoubleTap 交互时发生。

(继承自 UIElement)
DragEnter

当输入系统报告具有此元素作为目标的基础拖动事件时发生。

(继承自 UIElement)
DragLeave

当输入系统报告具有此元素作为原点的基础拖动事件时发生。

(继承自 UIElement)
DragOver

在输入系统报告出现以此元素为可能放置目标的基础拖动事件时发生。

(继承自 UIElement)
DragStarting

在启动拖动操作时发生。

(继承自 UIElement)
Drop

在输入系统报告出现将此元素作为放置目标的基础放置事件时发生。

(继承自 UIElement)
DropCompleted

结束此元素作为源的拖放操作时发生。

(继承自 UIElement)
EffectiveViewportChanged

FrameworkElement的有效视区 更改时发生。

(继承自 FrameworkElement)
FocusDisengaged

当焦点从游戏板/远程交互) 的控制边界 (释放时发生。

FocusEngaged

当焦点限制在游戏板/远程交互) 的控制边界 (时发生。

GettingFocus

UIElement 接收焦点之前发生。 此事件是同步引发的,以确保在事件冒泡时不会移动焦点。

(继承自 UIElement)
GotFocus

UIElement 收到焦点时发生。 此事件是异步引发的,因此焦点可以在浮升完成之前再次移动。

(继承自 UIElement)
Holding

当此元素的命中测试区域发生其他未处理的 保持 交互时发生。

(继承自 UIElement)
IsEnabledChanged

IsEnabled 属性更改时发生。

KeyDown

UIElement 具有焦点时按下键盘键时发生。

(继承自 UIElement)
KeyUp

UIElement 具有焦点时释放键盘键时发生。

(继承自 UIElement)
LayoutUpdated

当可视化树的布局更改时发生,因为布局相关的属性更改值或刷新布局的其他操作。

(继承自 FrameworkElement)
Loaded

在已构造 FrameworkElement 并将其添加到对象树中并准备好交互时发生。

(继承自 FrameworkElement)
Loading

在开始加载 FrameworkElement 时发生。

(继承自 FrameworkElement)
LosingFocus

UIElement 失去焦点之前发生。 此事件是同步引发的,以确保在事件冒泡时不会移动焦点。

(继承自 UIElement)
LostFocus

UIElement 失去焦点时发生。 此事件是异步引发的,因此焦点可以在浮升完成之前再次移动。

(继承自 UIElement)
ManipulationCompleted

UIElement 上的操作完成时发生。

(继承自 UIElement)
ManipulationDelta

当输入设备在操作期间更改位置时发生。

(继承自 UIElement)
ManipulationInertiaStarting

在输入设备在操作期间与 UIElement 对象失去联系和延迟开始时发生。

(继承自 UIElement)
ManipulationStarted

在输入设备在 UIElement 上开始操作时发生。

(继承自 UIElement)
ManipulationStarting

在首次创建操作处理器时发生。

(继承自 UIElement)
NoFocusCandidateFound

当用户尝试通过选项卡或方向箭头 (移动焦点时发生) ,但焦点无法移动,因为没有在移动方向上找到焦点候选项。

(继承自 UIElement)
PointerCanceled

当进行接触的指针异常失去接触时发生。

(继承自 UIElement)
PointerCaptureLost

当指针捕获以前由此元素移动到另一个元素或其他位置时发生。

(继承自 UIElement)
PointerEntered

当指针进入此元素的命中测试区域时发生。

(继承自 UIElement)
PointerExited

当指针离开此元素的命中测试区域时发生。

(继承自 UIElement)
PointerMoved

当指针保持在此元素的命中测试区域内时,指针移动时发生。

(继承自 UIElement)
PointerPressed

当指针设备在此元素中启动 “按下” 操作时发生。

(继承自 UIElement)
PointerReleased

在释放之前启动 Press 操作的指针设备时发生,而此元素中。 请注意, 不保证按下 操作的结束会触发 PointerReleased 事件;其他事件可能会改为触发。 有关详细信息,请参阅备注。

(继承自 UIElement)
PointerWheelChanged

当指针滚轮的增量值更改时发生。

(继承自 UIElement)
PreviewKeyDown

UIElement 具有焦点时按下键盘键时发生。

(继承自 UIElement)
PreviewKeyUp

UIElement 具有焦点时释放键盘键时发生。

(继承自 UIElement)
ProcessKeyboardAccelerators

按下 键盘快捷方式 (或快捷键) 时发生。

(继承自 UIElement)
RightTapped

当指针位于 元素上时发生右点击输入刺激时发生。

(继承自 UIElement)
SizeChanged

ActualHeightActualWidth 属性更改 FrameworkElement 上的值时发生。

(继承自 FrameworkElement)
Tapped

在此元素的命中测试区域上发生其他未经处理的 点击 交互时发生。

(继承自 UIElement)
Unloaded

当此对象不再连接到main对象树时发生。

(继承自 FrameworkElement)

适用于

另请参阅