AutomationPeer 类

定义

提供一个基类,该基类向 Microsoft UI 自动化公开关联的所有者类的自动化对等。

public ref class AutomationPeer : DependencyObject
/// [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 AutomationPeer : DependencyObject
[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 AutomationPeer : DependencyObject
Public Class AutomationPeer
Inherits DependencyObject
继承
Object Platform::Object IInspectable DependencyObject AutomationPeer
派生
属性

Windows 要求

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

注解

AutomationPeer 是一个类,它提供几乎所有 API,这些 API 最终使用 C++、C# 或 Visual Basic 将 UWP 应用的 Microsoft UI 自动化信息转发到 Microsoft UI 自动化客户端。 典型的 Microsoft UI 自动化客户端不会直接调用 AutomationPeer 方法。 这些客户端通常是使用其他编程模型并作为服务运行的辅助技术,并且不太可能调用Windows 运行时方法。 但是,Windows 运行时中的常规 Microsoft UI 自动化支持使用 Microsoft UI 自动化框架的提供程序端转发所有这些信息。 Microsoft UI 自动化的任何客户端都可以使用 C++、C# 或 Visual Basic 与 UWP 应用的代表性自动化树进行交互。

触发自动化事件

AutomationPeer 类与Windows 运行时控件作者相关,因为在运行时调用 OnCreateAutomationPeer 方法后,在运行时将有一个可用的对等实例。 使用此对等方,可以通过调用 RaiseAutomationEventRaisePropertyChangedEvent 来触发自动化事件。 每当对等方所有者中的相关属性 (类) 更改时,或者需要触发事件以获取正确的自动化支持时,都会执行此操作。

在实现 OnCreateAutomationPeer 的方式过程中,自动化支持设计不会保留对你自己的对等方的句柄,因为对等方的实际创建时间没有任何保证。 相反,可以使用如下所示的代码,在控件类定义中实时为运行时自动化事件侦听器检查:

if (AutomationPeer.ListenerExists(AutomationEvents.PropertyChanged))
{
    MyAutomationPeer peer = 
        FrameworkElementAutomationPeer.FromElement(myCtrl) as MyAutomationPeer;

    if (peer != null)
    {
        peer.RaisePropertyChangedEvent(
            RangeValuePatternIdentifiers.ValueProperty,
            (double)oldValue,
            (double)newValue);
    }
}
If AutomationPeer.ListenerExists(AutomationEvents.PropertyChanged) Then
    Dim peer As MyAutomationPeer = _
    TryCast(FrameworkElementAutomationPeer.FromElement(myCtrl), MyAutomationPeer)
    If peer IsNot Nothing Then
        peer.RaisePropertyChangedEvent(RangeValuePatternIdentifiers.ValueProperty, CDbl(oldValue), CDbl(newValue))
    End If
End If

AutomationPeer 派生类

AutomationPeer 位于Windows 运行时控件和相关 UI 类的所有现有对等的层次结构中。

直接派生自 AutomationPeer 的类包括:

核心 方法

“Core”方法是执行关联 Microsoft UI 自动化客户端可调用方法的默认操作的标准实现。 可以重写任何“Core”方法,以返回自定义自动化对等中的替代值。 例如,每当调用 GetAcceleratorKey 时,将调用 GetAcceleratorKeyCore ,在调用 GetAccessKey 时调用 GetAccessKeyCore ,等等。

AutomationPeer 的基本实现返回 null。 表示项的对等方可能会将结果延迟到其容器。

版本历史记录

Windows 版本 SDK 版本 已添加值
1511 10586 GetLandmarkType
1511 10586 GetLandmarkTypeCore
1511 10586 GetLocalizedLandmarkType
1511 10586 GetLocalizedLandmarkTypeCore
1607 14393 GetDescribedByCore
1607 14393 GetFlowsFromCore
1607 14393 GetFlowsToCore
1607 14393 GetFullDescription
1607 14393 GetFullDescriptionCore
1607 14393 IsDataValidForForm
1607 14393 IsDataValidForFormCore
1607 14393 IsPeripheral
1607 14393 IsPeripheralCore
1703 15063 GetCulture
1703 15063 GetCultureCore
1709 16299 RaiseNotificationEvent
1803 17134 GetHeadingLevel
1803 17134 GetHeadingLevelCore
1809 17763 IsDialog
1809 17763 IsDialogCore

构造函数

AutomationPeer()

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

属性

Dispatcher

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

(继承自 DependencyObject)
EventsSource

获取或设置一个 AutomationPeer, 它作为来自此 AutomationPeer 的所有事件的源报告给自动化客户端。 请参阅“备注”。

方法

ClearValue(DependencyProperty)

清除依赖属性的本地值。

(继承自 DependencyObject)
GenerateRawElementProviderRuntimeId()

为与自动化对等互连的元素生成运行时标识符。

GetAcceleratorKey()

获取与 UI 自动化对等互连的 对象的快捷键组合。

GetAcceleratorKeyCore()

在 Microsoft UI 自动化客户端调用 GetAcceleratorKey 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetAccessKey()

获取与自动化对等关联的元素的访问密钥。

GetAccessKeyCore()

在 Microsoft UI 自动化客户端调用 GetAccessKey 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetAnimationBaseValue(DependencyProperty)

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

(继承自 DependencyObject)
GetAnnotations()

获取对当前自动化对等方 UI 自动化注释列表的引用。

GetAnnotationsCore()

提供 Microsoft UI 自动化客户端调用 GetAnnotations 或等效的 Microsoft UI 自动化客户端 API 时对等方的行为。

GetAutomationControlType()

获取与 UI 自动化对等互连的元素的控件类型。

GetAutomationControlTypeCore()

在 Microsoft UI 自动化客户端调用 GetAutomationControlType 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetAutomationId()

获取与自动化对等体关联的元素的 AutomationId

GetAutomationIdCore()

在 Microsoft UI 自动化客户端调用 GetAutomationId 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetBoundingRectangle()

获取代表与自动化对等关联的元素的屏幕坐标的 Rect 对象。

GetBoundingRectangleCore()

在 Microsoft UI 自动化客户端调用 GetBoundingRectangle 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetChildren()

获取子元素的集合,这些子元素在 UI 自动化树中表示为自动化对等的直接子元素。

GetChildrenCore()

在 Microsoft UI 自动化客户端调用 GetChildren 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetClassName()

获取与 AutomationControlType 一起使用的名称,以区分由此 AutomationPeer 表示的控件。

GetClassNameCore()

在 Microsoft UI 自动化客户端调用 GetClassName 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetClickablePoint()

获取元素上的一个点,该点与响应鼠标单击的自动化对等方相关联。

GetClickablePointCore()

在 Microsoft UI 自动化客户端调用 GetClickablePoint 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetControlledPeers()

当 Microsoft UI 自动化客户端调用 GetControlledPeers 或等效的 Microsoft UI 自动化客户端 API(例如获取 由 UIA_ControllerForPropertyId 标识的属性值)时,提供对等行为。

GetControlledPeersCore()

获取当前自动化对等的受控对等互连的列表。

GetCulture()

调用 GetCultureCore 以获取与自动化对等体关联的元素的区域性值。

GetCultureCore()

获取与自动化对等体关联的元素的区域性值。

GetDescribedByCore()

获取元素的集合,这些元素提供有关自动化元素的详细信息。

GetElementFromPoint(Point)

从指定点获取元素。

GetElementFromPointCore(Point)

提供 Microsoft UI 自动化客户端调用 GetElementFromPoint 或等效的 Microsoft UI 自动化客户端 API 时对等方的行为。

GetFlowsFromCore()

在 Microsoft UI 自动化客户端调用 GetFlowsFrom 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetFlowsToCore()

在 Microsoft UI 自动化客户端调用 GetFlowsTo 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetFocusedElement()

获取当前具有焦点的元素。

GetFocusedElementCore()

提供 Microsoft UI 自动化客户端调用 GetFocusedElement 或等效的 Microsoft UI 自动化客户端 API 时对等方的行为。

GetFullDescription()

获取一个本地化字符串,该字符串描述图像或图像控件等内容的实际视觉外观或内容。

GetFullDescriptionCore()

在 Microsoft UI 自动化客户端调用 GetFullDescription 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetHeadingLevel()

获取与此自动化对等互连的 UI 自动化元素的标题级别。

GetHeadingLevelCore()

在 Microsoft UI 自动化客户端调用 GetHeadingLevel 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetHelpText()

获取描述与自动化同级关联的控件的功能的文本。

GetHelpTextCore()

在 Microsoft UI 自动化客户端调用 GetHelpText 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetItemStatus()

获取可传达与此自动化同级关联的元素的可视状态的文本。

GetItemStatusCore()

在 Microsoft UI 自动化客户端调用 GetItemStatus 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetItemType()

获取描述元素所表示的项类型的字符串。

GetItemTypeCore()

在 Microsoft UI 自动化客户端调用 GetItemType 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetLabeledBy()

获取以 元素为目标的 UIElementAutomationPeer

GetLabeledByCore()

在 Microsoft UI 自动化客户端调用 GetLabeledBy 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetLandmarkType()

获取此自动化对等方的陆标类型。

GetLandmarkTypeCore()

在 Microsoft UI 自动化客户端调用 GetLandmarkType 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetLevel()

返回与自动化对等互连的元素的级别 (层次结构) 从 1 开始的整数。

GetLevelCore()

在 Microsoft UI 自动化客户端调用 GetLevel 或等效的 Microsoft UI 自动化客户端 API 时提供对等方的行为。

GetLiveSetting()

获取与 UI 自动化对等方关联的对象的实时设置通知行为信息。

GetLiveSettingCore()

在 Microsoft UI 自动化客户端调用 GetLiveSetting 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetLocalizedControlType()

获取一个本地化字符串,该字符串表示与此自动化对等互连的控件的 AutomationControlType 值。

GetLocalizedControlTypeCore()

在 Microsoft UI 自动化客户端调用 GetLocalizedControlType 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetLocalizedLandmarkType()

获取一个本地化字符串,该字符串表示与此自动化对等关联的元素的 AutomationLandmarkType 值。

GetLocalizedLandmarkTypeCore()

在 Microsoft UI 自动化客户端调用 GetLocalizedLandmarkType 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetName()

获取描述与此自动化同级关联的元素的文本。 Microsoft UI 自动化 名称 值是大多数辅助技术通过与 Microsoft UI 自动化框架交互来表示应用的 UI 时使用的主要标识符。

GetNameCore()

在 Microsoft UI 自动化客户端调用 GetName 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetOrientation()

获取指示显式控件方向(如果有)的值。

GetOrientationCore()

在 Microsoft UI 自动化客户端调用 GetOrientation 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetParent()

获取此 AutomationPeer 的父级 AutomationPeer

GetPattern(PatternInterface)

获取与指定的 PatternInterface 关联的控件模式。

GetPatternCore(PatternInterface)

在 Microsoft UI 自动化客户端调用 GetPattern 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetPeerFromPoint(Point)

从指定点获取 AutomationPeer

GetPeerFromPointCore(Point)

在 Microsoft UI 自动化客户端调用 GetPeerFromPoint 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetPositionInSet()

返回与自动化对等关联的元素的集中序号位置的从 1 开始的整数。

GetPositionInSetCore()

在 Microsoft UI 自动化客户端调用 GetPositionInSet 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetSizeOfSet()

返回与自动化对等关联的元素所在的集大小的从 1 开始的整数。

GetSizeOfSetCore()

在 Microsoft UI 自动化客户端调用 GetSizeOfSet 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

GetValue(DependencyProperty)

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

(继承自 DependencyObject)
HasKeyboardFocus()

获取一个值,该值指示与此自动化同级关联的元素当前是否具有键盘焦点。

HasKeyboardFocusCore()

在 Microsoft UI 自动化客户端调用 HasKeyboardFocus 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

InvalidatePeer()

触发对 AutomationPeer main 属性的重新计算,并在属性发生更改时向自动化客户端发出 PropertyChanged 通知。

IsContentElement()

获取一个值,该值指示与此自动化对等方关联的元素是否包含向用户显示的数据。

IsContentElementCore()

在 Microsoft UI 自动化客户端调用 IsContentElement 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

IsControlElement()

获取一个值,该值指示用户是将元素理解为交互式元素,还是作为 GUI 中控件逻辑结构的贡献。

IsControlElementCore()

在 Microsoft UI 自动化客户端调用 IsControlElement 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

IsDataValidForForm()

获取一个布尔值,该值指示输入的值还是所选值对于与自动化元素关联的表单规则有效。

IsDataValidForFormCore()

提供 Microsoft UI 自动化客户端访问 IsDataValidForForm 或等效的 Microsoft UI 自动化客户端 API 时的对等行为。

IsDialog()

获取一个值,该值指示与此自动化对等互连关联的元素是否为对话窗口。

IsDialogCore()

在 Microsoft UI 自动化客户端调用 IsDialog 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

IsEnabled()

获取一个值,该值指示与此自动化同级关联的元素是否支持交互。

IsEnabledCore()

在 Microsoft UI 自动化客户端调用 IsEnabled 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

IsKeyboardFocusable()

获取一个值,该值指示此元素是否可以接受键盘焦点。

IsKeyboardFocusableCore()

在 Microsoft UI 自动化客户端调用 IsKeyboardFocusable 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

IsOffscreen()

获取一个值,该值指示元素是否不在屏幕上。

IsOffscreenCore()

在 Microsoft UI 自动化客户端调用 IsOffscreen 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

IsPassword()

获取一个值,该值指示元素是否包含敏感内容。

IsPasswordCore()

在 Microsoft UI 自动化客户端调用 IsPassword 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

IsPeripheral()

获取一个布尔值,该值指示自动化元素是否表示外围 UI。

IsPeripheralCore()

在 Microsoft UI 自动化客户端访问 IsPeripheral 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

IsRequiredForForm()

获取一个值,该值指示是否必须在窗体中完成与此同级关联的元素。

IsRequiredForFormCore()

在 Microsoft UI 自动化客户端调用 IsRequiredForForm 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

ListenerExists(AutomationEvents)

获取一个值,该值指示 Microsoft UI 自动化是否报告客户端正在侦听指定事件。

Navigate(AutomationNavigationDirection)

获取 UI 自动化树中指定方向的元素。

NavigateCore(AutomationNavigationDirection)

在 Microsoft UI 自动化客户端调用 Navigate 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

PeerFromProvider(IRawElementProviderSimple)

获取指定 IRawElementProviderSimple 代理的 AutomationPeer

ProviderFromPeer(AutomationPeer)

获取指定 AutomationPeerIRawElementProviderSimple 代理。

RaiseAutomationEvent(AutomationEvents)

引发自动化事件。

RaiseNotificationEvent(AutomationNotificationKind, AutomationNotificationProcessing, String, String)

启动通知事件。

RaisePropertyChangedEvent(AutomationProperty, Object, Object)

引发事件以通知自动化客户端已更改的属性值。

RaiseStructureChangedEvent(AutomationStructureChangeType, AutomationPeer)

引发事件以通知 Microsoft UI 自动化核心树结构已更改。

RaiseTextEditTextChangedEvent(AutomationTextEditChangeType, IVectorView<String>)

引发事件以通知 Microsoft UI 自动化核心文本控件已以编程方式更改文本。

ReadLocalValue(DependencyProperty)

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

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

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

(继承自 DependencyObject)
SetFocus()

对与此自动化同级关联的元素设置键盘焦点。

SetFocusCore()

在 Microsoft UI 自动化客户端调用 SetFocus 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

SetParent(AutomationPeer)

设置此 AutomationPeer 的父级 AutomationPeer

SetValue(DependencyProperty, Object)

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

(继承自 DependencyObject)
ShowContextMenu()

显示所有者元素的可用上下文菜单。

ShowContextMenuCore()

在 Microsoft UI 自动化客户端调用 ShowContextMenu 或等效的 Microsoft UI 自动化客户端 API 时提供对等行为。

UnregisterPropertyChangedCallback(DependencyProperty, Int64)

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

(继承自 DependencyObject)

适用于

另请参阅