UI オートメーションによる DataItem コントロール型のサポート

Note

このドキュメントは、System.Windows.Automation 名前空間で定義されているマネージド UI オートメーション クラスを使用する .NET Framework 開発者を対象としています。 UI オートメーションの最新情報については、Windows Automation API の「UI オートメーション」を参照してください。

このトピックでは、DataItem コントロール型に対する Microsoft UI オートメーションのサポートについて説明します。 UI オートメーションでのコントロール型とは、コントロールが ControlTypeProperty プロパティを使用するために満たす必要がある条件のセットのことです。 この条件には、UI オートメーション ツリーの構造、UI オートメーションのプロパティ値、コントロール パターンに関する特定のガイドラインが含まれます。

連絡先リストのエントリは、データ項目コントロールの一例です。 データ項目コントロールには、エンド ユーザーに必要な情報が格納されます。 これは、より豊富な情報が格納されるため、単純なリスト項目よりも複雑になります。

以降のセクションでは、DataItem コントロール型に必要な UI オートメーション ツリーの構造、プロパティ、コントロール パターン、イベントを定義します。 この UI オートメーションの要件は、Windows Presentation Foundation (WPF)、Win32、または Windows フォームのいずれにおいても、すべてのデータ項目コントロールに適用されます。

必須の UI オートメーション ツリー構造

次の表に、データ項目コントロールに関連する UI オートメーション ツリーのコントロール ビューとコンテンツ ビューを示し、それぞれのビューに含めることができる内容について説明します。 UI オートメーション ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。

UI オートメーション ツリー - コントロール ビュー UI オートメーション ツリー - コンテンツ ビュー
DataItem

- Varies (0 以上。階層で構造化できます)
DataItem

- Varies (0 以上。階層で構造化できます)

データ グリッド内のデータ項目要素は、さまざまなオブジェクトをホストできます。たとえば、別のレイヤーのデータ項目や、テキスト、イメージ、エディット コントロールなどの特定のグリッド要素をホストできます。 データ項目要素に特定のオブジェクトの役割がある場合は、その要素を特定のコントロール型 (たとえば、グリッド内の選択可能なデータ項目の場合は ListItem コントロール型など) として公開する必要があります。

必須の UI オートメーション プロパティ

次の表に、データ項目コントロールに特に関連する値または定義を持つプロパティを示します。 UI オートメーション プロパティの詳細については、「クライアントの UI オートメーション プロパティ」を参照してください。

プロパティ Notes
AutomationIdProperty 「ノート」を参照してください。 このプロパティの値は、アプリケーション内のすべてのコントロールで一意である必要があります。
BoundingRectangleProperty 「ノート」を参照してください。 コントロール全体を格納する最も外側の四角形。
ClickablePointProperty 「ノート」を参照してください。 四角形領域が存在する場合にサポートされます。 四角形領域内にクリック不可能な点が存在し、特別なヒット テストを実行する場合は、オーバーライドしてクリック可能な点を提供します。
ControlTypeProperty DataItem この値は、すべての UI フレームワークで同じです。
IsContentElementProperty データ項目コントロールは、常にコンテンツである必要があります。
IsControlElementProperty データ項目コントロールは、常にコントロールである必要があります。
IsKeyboardFocusableProperty 「ノート」を参照してください。 コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。
ItemStatusProperty 「ノート」を参照してください。 コントロールに動的に更新される状態が含まれる場合、要素の状態が変化したときに支援技術が更新を受け取ることができるように、このプロパティをサポートする必要があります。
ItemTypeProperty 「ノート」を参照してください。 これは、項目が表す基になるオブジェクトをエンド ユーザーに伝達する文字列値です。 例として "メディア ファイル" や "連絡先" があります。
LabeledByProperty Null データ項目コントロールに静的なテキスト ラベルはありません。
LocalizedControlTypeProperty "data item" DataItem コントロール型に対応するローカライズされた文字列。
NameProperty 「ノート」を参照してください。 データ項目コントロールには、主要なテキスト要素が常に含まれています。この要素は、その項目に対してユーザーが最も意味的な識別子として連想するものに関連しています。

必須の UI オートメーション コントロール パターン

次の表に、すべてのデータ項目コントロールでサポートされる必要がある UI オートメーション コントロール パターンを示します。 コントロール パターンについて詳しくは、「 UI Automation Control Patterns Overview」をご覧ください。

コントロール パターン サポート Notes
IExpandCollapseProvider 依存 データ項目を展開したり折りたたんだりして、情報の表示/非表示を切り替える場合、Expand Collapse パターンをサポートする必要があります。
IGridItemProvider 依存 データ項目の集合が、空間的に項目間を移動できるコンテナー内にある場合、データ項目は Grid Item パターンをサポートします。
IScrollItemProvider 依存 画面に収まる項目数を超える項目がデータ コンテナーにある場合、すべてのデータ項目は Scroll Item パターンを使用して、スクロールして表示する機能をサポートします。
ISelectionItemProvider はい すべてのデータ項目は、項目が選択されたタイミングを示す Selection Item パターンをサポートする必要があります。
ITableItemProvider 依存 データ項目が Data Grid コントロール型の中に含まれている場合、このパターンをサポートします。
IToggleProvider 依存 データ項目に循環する状態が含まれる場合。
IValueProvider 依存 データ項目の主要なテキストが編集可能な場合は、Value パターンをサポートする必要があります。

大きなリストでのデータ項目の操作

大きなリストでは、多くの場合、パフォーマンスを向上させるため、UI フレームワーク内でデータが仮想化されます。 そのため、UI オートメーション クライアントでは、UI オートメーション クエリ機能を使用して、他の項目コンテナーの場合と同じ方法で完全なツリーからコンテンツを取得することはできません。 クライアントは、データ項目の完全に揃った情報にアクセスする前に、項目をスクロールして表示する (またはコントロールを展開して重要なすべてのオプションを表示する) 必要があります。

データ項目の UI オートメーション要素で SetFocus を呼び出すと、Microsoft Windows エクスプローラーの場合は正常に値が返され、データ項目サブツリー内でフォーカスを編集に設定されます。

必須の UI オートメーション イベント

次の表に、すべてのメデータ項目コントロールでサポートされる必要がある UI オートメーション イベントを示します。 イベントの詳細については、「 UI Automation Events Overview」を参照してください。

UI オートメーション イベント サポート Notes
AutomationFocusChangedEvent 必須 なし
BoundingRectangleProperty プロパティ変更イベント。 必須 なし
IsEnabledProperty プロパティ変更イベント。 必須 なし
IsOffscreenProperty プロパティ変更イベント。 必須 なし
NameProperty プロパティ変更イベント。 必須 なし
StructureChangedEvent 必須 なし
InvokedEvent 依存 なし
ExpandCollapseStateProperty プロパティ変更イベント。 依存 なし
ElementAddedToSelectionEvent 必須 なし
ElementRemovedFromSelectionEvent 必須 なし
ElementSelectedEvent 必須 なし
ToggleStateProperty プロパティ変更イベント。 依存 なし
ValueProperty プロパティ変更イベント。 依存 なし

DataItem コントロール型の例

次の図は、列の豊富な情報をサポートするリスト ビュー コントロール内の DataItem コントロール型を示しています。

Graphic of a List View control with two data items

以下には、データ項目コントロールに関連する UI オートメーション ツリーのコントロール ビューとコンテンツ ビューが表示されています。 オートメーションの各要素のコントロール パターンが、かっこ内に示されています。 グループ "Contoso" は、データ グリッド ホスト コントロールのグリッドの一部でもあります。

UI オートメーション ツリー - コントロール ビュー UI オートメーション ツリー - コンテンツ ビュー
- Group "Contoso" (Table、Grid)
- DataItem "Accounts Receivable.doc" (TableItem、GridItem、SelectionItem、Invoke)
- Image "Accounts Receivable.doc"
- Edit "Name" (TableItem、GridItem、Value "Accounts Receivable.doc")
- Edit "Date modified" (TableItem、GridItem、Value "8/25/2006 3:29 PM")
- Edit "Size" (GridItem、TableItem、Value "11.0 KB)
- DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- ...
- Group "Contoso" (Table、Grid)
- DataItem "Accounts Receivable.doc" (TableItem、GridItem、SelectionItem、Invoke)
- Image "Accounts Receivable.doc"
- Edit "Name" (TableItem、GridItem、Value "Accounts Receivable.doc")
- Edit "Date modified" (TableItem、GridItem、Value "8/25/2006 3:29 PM")
- Edit "Size" (GridItem、TableItem、Value "11.0 KB)
- DataItem "Accounts Payable.doc" (TableItem, GridItem, SelectionItem, Invoke)
- …

グリッドが選択可能な項目のリストを表している場合、DataItem コントロール型の代わりに、ListItem コントロール型で対応する UI 要素を公開できます。 前の例では、グループ ("Contoso") の下の DataItem 要素 ("Accounts Receivable.doc" および "Accounts Payable.doc") を ListItem コントロール型として公開することで、その型が既に SelectionItem コントロール パターンをサポートしているため、それらの要素を向上させることができます。

関連項目