AutomationPeer 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
提供基類,這個基類會將相關聯擁有者類別的自動化對等公開給 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
- 繼承
- 衍生
- 屬性
Windows 需求
裝置系列 |
Windows 10 (已於 10.0.10240.0 引進)
|
API contract |
Windows.Foundation.UniversalApiContract (已於 v1.0 引進)
|
備註
AutomationPeer 是一種類別,提供幾乎所有 API,最終會使用 C++、C# 或 Visual Basic 將 UWP 應用程式的 Microsoft UI 自動化資訊轉送至 Microsoft UI 自動化用戶端。 典型的 Microsoft UI 自動化用戶端不會直接呼叫 AutomationPeer 方法。 這些用戶端通常是使用其他程式設計模型和作為服務運作的輔助技術,而且不太可能呼叫Windows 執行階段方法。 但是,Windows 執行階段中的一般 Microsoft UI 自動化支援會使用 Microsoft UI 自動化架構的提供者端轉寄此資訊。 Microsoft 使用者介面自動化的任何用戶端都可以使用 C++、C# 或 Visual Basic 與 UWP 應用程式的代表性自動化樹狀結構互動。
引發自動化事件
AutomationPeer 類別與Windows 執行階段控制項作者有關,因為執行時間會在執行時間叫用OnCreateAutomationPeer方法之後,于執行時間取得對等實例。 使用此對等,您可以呼叫 RaiseAutomationEvent 和 RaisePropertyChangedEvent來引發自動化事件。 每當對等擁有者中的相關屬性 (類別) 變更時,或在引發事件時需要正確的自動化支援時執行此動作。
自動化支援設計不會在實作 OnCreateAutomationPeer的方式中保留您自己的對等控制碼,因為實際建立對等時沒有任何保證。 相反地,您可以使用如下所示的程式碼,檢查控制項類別定義 Just-In-Time 內的執行時間自動化事件接聽程式:
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 的類別包括:
- ItemAutomationPeer
- FrameworkElementAutomationPeerFrameworkElementAutomationPeer。 如需衍生自 FrameworkElementAutomationPeer 的對等清單,請參閱 FrameworkElementAutomationPeer的一節。
核心 方法
「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 |
取得這個 物件相關聯的 CoreDispatcher 。 CoreDispatcher代表可在 UI 執行緒上存取DependencyObject的功能,即使程式碼是由非 UI 執行緒起始也一樣。 (繼承來源 DependencyObject) |
EventsSource |
取得或設定 向自動化用戶端報告的 AutomationPeer ,做為來自這個 AutomationPeer之所有事件的來源。 請參閱<備註>。 |
方法
ClearValue(DependencyProperty) |
清除相依性屬性的本機值。 (繼承來源 DependencyObject) |
GenerateRawElementProviderRuntimeId() |
為與自動化對等相關聯的專案產生執行時間識別碼。 |
GetAcceleratorKey() |
取得與使用者介面自動化對等相關聯之物件的快速鍵組合。 |
GetAcceleratorKeyCore() |
當 Microsoft UI 自動化用戶端呼叫 GetAcceleratorKey 或對等的 Microsoft UI 自動化用戶端 API 時,提供對等的行為。 |
GetAccessKey() |
取得與自動化對等相關聯之項目的存取金鑰。 |
GetAccessKeyCore() |
當 Microsoft UI 自動化用戶端呼叫 GetAccessKey 或對等的 Microsoft UI 自動化用戶端 API 時,提供對等的行為。 |
GetAnimationBaseValue(DependencyProperty) |
傳回為相依性屬性建立的任何基底值,如果動畫未使用中,則適用此屬性。 (繼承來源 DependencyObject) |
GetAnnotations() |
取得目前自動化對等使用者介面自動化注釋清單的參考。 |
GetAnnotationsCore() |
當 Microsoft UI 自動化用戶端呼叫 GetAnnotations 或對等的 Microsoft UI 自動化用戶端 API 時,提供對等的行為。 |
GetAutomationControlType() |
取得與使用者介面自動化對等相關聯之專案的控制項類型。 |
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() |
取得在使用者介面自動化樹狀結構中表示為自動化對等之立即子項目的子專案集合。 |
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() |
取得與這個自動化對等相關聯之使用者介面自動化專案的標題層級。 |
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() |
取得以 專案為目標之 UIElement的AutomationPeer。 |
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() |
取得與使用者介面自動化對等相關聯之 物件的即時設定通知行為資訊。 |
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 主要屬性的重新計算,並在屬性變更時對自動化用戶端引發 PropertyChanged 通知。 |
IsContentElement() |
取得值,這個值表示與此 Automation Peer 相關聯的項目是否包含呈現給使用者的資料。 |
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 Proxy 的AutomationPeer。 |
ProviderFromPeer(AutomationPeer) |
取得指定AutomationPeer的IRawElementProviderSimple Proxy。 |
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) |