UI オートメーション プロパティの概要UI Automation Properties Overview


このドキュメントは、UI オートメーションUI Automation 名前空間で定義されているマネージド System.Windows.Automation クラスを使用する .NET Framework 開発者を対象としています。This documentation is intended for .NET Framework developers who want to use the managed UI オートメーションUI Automation classes defined in the System.Windows.Automation namespace. UI オートメーションUI Automationの最新情報については、「 Windows Automation API: UI オートメーション」を参照してください。For the latest information about UI オートメーションUI Automation, see Windows Automation API: UI Automation.

UI オートメーション プロバイダーは、 Microsoft UI オートメーションMicrosoft UI Automation 要素のプロパティを公開します。UI Automation providers expose properties on Microsoft UI オートメーションMicrosoft UI Automation elements. これらのプロパティにより、UI オートメーション クライアント アプリケーションは、静的データと動的データを含め、 ユーザー インターフェイス (UI)user interface (UI)の構成部分 (特にコントロール) に関する情報を探索できます。These properties enable UI Automation client applications to discover information about pieces of the ユーザー インターフェイス (UI)user interface (UI), especially controls, including both static and dynamic data.

このセクションでは、 Microsoft UI オートメーションMicrosoft UI Automation プロパティの概要を説明します。This section gives a broad overview of Microsoft UI オートメーションMicrosoft UI Automation properties. 詳細については、以下のトピックで説明しています。More specific information is given in the following topics:

プロパティ識別子Property Identifiers

すべてのプロパティは、番号と名前によって識別されます。Every property is identified by a number and a name. プロパティの名前を使用するのは、デバッグおよび診断を行う場合のみです。The names of properties are used only for debugging and diagnosis. プロバイダーは、数値 Id を使用して、受信プロパティ要求を識別します。Providers use the numeric IDs to identify incoming property requests. ただし、クライアント アプリケーションは、番号と名前をカプセル化した AutomationPropertyだけを使用して、取得したいプロパティを識別します。Client applications, however, only use AutomationProperty, which encapsulates the number and name, to identify properties they wish to retrieve.

特定のプロパティを表すAutomationProperty オブジェクトは、さまざまなクラスでフィールドとして使用できます。AutomationProperty objects representing particular properties are available as fields in various classes. セキュリティ上の理由から、UI オートメーション プロバイダーは、Uiautomationtypes.dll に含まれている別のクラスのセットから、これらのオブジェクトを取得します。For security reasons, UI Automation providers obtain these objects from a separate set of classes that are contained in Uiautomationtypes.dll.

次の表は、AutomationPropertyId を含むクラスによってプロパティを分類しています。The following table categorizes properties by the classes that contain the AutomationPropertyIDs.

プロパティの種類Kinds of properties クライアントが ID を取得する場所Clients get IDs from プロバイダーが ID を取得する場所Providers get IDs from
すべての要素に共通のプロパティ (下記の表を参照)Properties common to all elements (see following tables) AutomationElement AutomationElementIdentifiers
ドッキング ウィンドウの位置Position of a docking window DockPattern DockPatternIdentifiers
展開または折りたたみが可能な要素の状態State of an element that can expand and collapse ExpandCollapsePattern ExpandCollapsePatternIdentifiers
グリッド内の項目のプロパティProperties of an item in a grid GridItemPattern GridItemPatternIdentifiers
グリッドのプロパティProperties of a grid GridPattern GridPatternIdentifiers
複数のビューを持つ要素の現在のサポートされているビューCurrent and supported view of an element that has multiple views MultipleViewPattern MultipleViewPatternIdentifiers
一定の値の範囲を移動する要素 (スライダーなど) のプロパティProperties of an element that moves over a range of values, such as a slider RangeValuePattern RangeValuePatternIdentifiers
スクロール ウィンドウのプロパティProperties of a scrolling window ScrollPattern ScrollPatternIdentifiers
選択できる項目 (リスト内の項目など) の状態およびコンテナーStatus and container of an item that can be selected, as in a list SelectionItemPattern SelectionItemPatternIdentifiers
選択項目を含むコントロールのプロパティProperties of a control that contains selection items SelectionPattern SelectionPatternIdentifiers
テーブル内の項目の列と行のヘッダーColumn and row headers of an item in a table TableItemPattern TableItemPatternIdentifiers
テーブルの列と行のヘッダーおよびテーブルの向きColumn and row headers, and orientation, of a table TablePattern TablePatternIdentifiers
切り替えコントロールの状態State of a toggle control TogglePattern TogglePatternIdentifiers
移動、回転、またはサイズ変更できる要素の機能Capabilities of an element that can be moved, rotated, or resized TransformPattern TransformPatternIdentifiers
値を持つ要素の値および読み取り/書き込み機能Value and read/write capabilities of an element that has a value ValuePattern ValuePatternIdentifiers
ウィンドウの機能および状態Capabilities and state of a window WindowPattern WindowPatternIdentifiers

カテゴリ別プロパティProperties by Category

次の表は、AutomationElementAutomationElementIdentifiersで Id が見つかったプロパティを分類したものです。The following tables categorize the properties whose IDs are found in AutomationElement and AutomationElementIdentifiers. これらのプロパティは、すべてのコントロールに共通です。These properties are common to all controls. 一部の例外を除き、ほとんどのプロパティがプロバイダー アプリケーションの有効期間にわたって静的です。動的プロパティのほとんどは、コントロール パターンに関連付けられています。All but a few of them are likely to be static over the lifetime of the provider application; most dynamic properties are associated with control patterns.

「プロパティ アクセス」 列には、 GetCurrentPropertyValueGetCachedPropertyValueだけでなく、各プロパティのすべてのアクセサーを示しています。The Property Access column lists any other accessors for each property, in addition to GetCurrentPropertyValue and GetCachedPropertyValue. クライアント アプリケーションでプロパティを取得する方法の詳細については、「 UI Automation Properties for Clients」を参照してください。For more information on getting properties in a client application, see UI Automation Properties for Clients.


各プロパティの詳細については、 「プロパティ アクセス」 列のリンク先を参照してください。For specific information about each property, follow the link in the Property Access column.

[特性の表示]Display Characteristics

プロパティの識別子Property identifier 「プロパティ アクセス」Property access
BoundingRectangleProperty BoundingRectangle
CultureProperty n/an/a
HelpTextProperty HelpText
IsOffscreenProperty IsOffscreen
OrientationProperty Orientation

Type 要素Element Type

プロパティの識別子Property identifier 「プロパティ アクセス」Property access
ControlTypeProperty ControlType
IsContentElementProperty IsContentElement
IsControlElementProperty IsControlElement
ItemTypeProperty ItemType
LocalizedControlTypeProperty LocalizedControlType


プロパティの識別子Property identifier 「プロパティ アクセス」Property access
AutomationIdProperty AutomationId
ClassNameProperty ClassName
FrameworkIdProperty FrameworkId
LabeledByProperty LabeledBy
NameProperty Name
ProcessIdProperty ProcessId
RuntimeIdProperty GetRuntimeId
NativeWindowHandleProperty NativeWindowHandle


プロパティの識別子Property identifier 「プロパティ アクセス」Property access
AcceleratorKeyProperty AcceleratorKey
AccessKeyProperty AccessKey
ClickablePointProperty GetClickablePoint
HasKeyboardFocusProperty HasKeyboardFocus
IsEnabledProperty IsEnabled
IsKeyboardFocusableProperty IsKeyboardFocusable

パターンのサポートSupport for Patterns

プロパティの識別子Property identifier 「プロパティ アクセス」Property access
IsDockPatternAvailableProperty GetSupportedPatterns
IsExpandCollapsePatternAvailableProperty GetSupportedPatterns
IsGridItemPatternAvailableProperty GetSupportedPatterns
IsGridPatternAvailableProperty GetSupportedPatterns
IsInvokePatternAvailableProperty GetSupportedPatterns
IsMultipleViewPatternAvailableProperty GetSupportedPatterns
IsRangeValuePatternAvailableProperty GetSupportedPatterns
IsScrollItemPatternAvailableProperty GetSupportedPatterns
IsScrollPatternAvailableProperty GetSupportedPatterns
IsSelectionItemPatternAvailableProperty GetSupportedPatterns
IsSelectionPatternAvailableProperty GetSupportedPatterns
IsTableItemPatternAvailableProperty GetSupportedPatterns
IsTablePatternAvailableProperty GetSupportedPatterns
IsTextPatternAvailableProperty GetSupportedPatterns
IsTogglePatternAvailableProperty GetSupportedPatterns
IsTransformPatternAvailableProperty GetSupportedPatterns
IsValuePatternAvailableProperty GetSupportedPatterns
IsWindowPatternAvailableProperty GetSupportedPatterns


プロパティの識別子Property identifier 「プロパティ アクセス」Property access
IsRequiredForFormProperty IsRequiredForForm
IsPasswordProperty IsPassword
ItemStatusProperty ItemStatus


UI オートメーションUI Automation プロバイダーは、以下のプロパティをオペレーティング システムの言語で提示する必要があります。providers should present the following properties in the language of the operating system:

プロパティおよびイベントProperties and Events

プロパティ変更イベントの概念は、 UI オートメーションUI Automation のプロパティと密接に関連しています。Closely tied in with the properties in UI オートメーションUI Automation is the concept of property-changed events. 動的プロパティの場合は、プロパティの値が変更されたときにキャッシュの情報を更新したり新しい情報に何らかの形で対応したりできるように、クライアント アプリケーションは、プロパティの値が変更されたことを認識できなければなりません。For dynamic properties, the client application needs a way to know that a property value has changed, so that it can update its cache of information or react to the new information in some other way.

UIUI で何らかの変更が発生すると、プロバイダーはイベントを生成します。Providers raise events when something in the UIUI changes. たとえば、チェック ボックスのオン/オフが切り替えられると、プロバイダーの Toggle パターンの実装によって、プロパティ変更イベントが生成されます。For example, if a check box is selected or cleared, a property-changed event is raised by the provider's implementation of the Toggle pattern. プロバイダーは、クライアントがイベントをリッスンしているのか、特定のイベントをリッスンしているのかに応じて、イベントを選択的に生成できます。Providers can raise events selectively, depending on whether any clients are listening for events, or listening for specific events.

すべてのプロパティ変更がイベントを生成するわけではありません。これは完全に、該当する要素の UI オートメーション プロバイダーの実装に依存します。Not all property changes raise events; that is entirely up to the implementation of the UI Automation provider for the element. たとえば、リスト ボックスの標準プロキシ プロバイダーは、 SelectionProperty が変更されてもイベントを生成しません。For example, the standard proxy providers for list boxes do not raise an event when the SelectionProperty changes. この場合、アプリケーションが ElementSelectedEventをリッスンする必要があります。In this case, the application instead must listen for an ElementSelectedEvent.

クライアントは、イベントをサブスクライブすることでイベントをリッスンします。Clients listen for events by subscribing to them. イベントをサブスクライブすることは、イベントを処理できるデリゲート メソッドを作成し、それらのメソッドで処理する特定のイベントと共に、それらのメソッドを UI オートメーションUI Automation に渡すことを意味します。Subscribing to events means creating delegate methods that can handle the events, and then passing the methods to UI オートメーションUI Automation along with the specific events that will be dealt with in those methods. 特にプロパティ変更イベントについては、クライアントが AutomationPropertyChangedEventHandlerを実装する必要があります。For property-changed events in particular, clients must implement AutomationPropertyChangedEventHandler.

参照See also