注
このドキュメントは、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 - 変化 (0 以上、階層内で構造化可能) |
DataItem - 変化 (0 以上、階層内で構造化可能) |
データ グリッド内のデータ項目要素は、データ項目の別のレイヤーや、テキスト、画像、編集コントロールなどの特定のグリッド要素など、さまざまなオブジェクトをホストできます。 データ項目要素に特定のオブジェクト ロールがある場合、要素は特定のコントロール型として公開する必要があります。たとえば、グリッド内の選択可能なデータ項目の ListItem コントロール型などです。
必要な UI オートメーション プロパティ
次の表に、値または定義がデータ項目コントロールに特に関連するプロパティを示します。 UI オートメーション プロパティの詳細については、「 クライアントの UI オートメーション プロパティ」を参照してください。
プロパティ | 価値 | 注記 |
---|---|---|
AutomationIdProperty | ノートを参照してください。 | このプロパティの値は、アプリケーション内のすべてのコントロールで一意である必要があります。 |
BoundingRectangleProperty | ノートを参照してください。 | コントロール全体を含む最も外側の四角形。 |
ClickablePointProperty | ノートを参照してください。 | 外接する四角形がある場合にサポートされます。 外接する四角形内のポイントのすべてがクリック可能でない場合、かつ特殊なヒットテストを行うのであれば、オーバーライドしてクリック可能なポイントを指定してください。 |
ControlTypeProperty | DataItem | この値は、すべての UI フレームワークで同じです。 |
IsContentElementProperty | 正しい | データ項目コントロールは常にコンテンツである必要があります。 |
IsControlElementProperty | 正しい | データ項目コントロールは常にコントロールである必要があります。 |
IsKeyboardFocusableProperty | ノートを参照してください。 | コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。 |
ItemStatusProperty | ノートを参照してください。 | 動的に更新される状態がコントロールに含まれている場合は、要素の状態が変更されたときに支援技術が更新を受け取ることができるように、このプロパティをサポートする必要があります。 |
ItemTypeProperty | ノートを参照してください。 | これは、アイテムが表す基になるオブジェクトをエンド ユーザーに伝える文字列値です。 例として、"メディア ファイル" または "連絡先" があります。 |
LabeledByProperty | Null |
データ項目コントロールには静的なテキスト ラベルがありません。 |
LocalizedControlTypeProperty | "データ項目" | DataItem コントロール型に対応するローカライズされた文字列。 |
NameProperty | ノートを参照してください。 | データ項目コントロールには、ユーザーがアイテムの最もセマンティック識別子として関連付ける内容に関連するプライマリ テキスト要素が常に含まれます。 |
必要な UI オートメーション コントロール パターン
次の表に、すべてのデータ項目コントロールでサポートされる必要がある Microsoft UI オートメーション コントロール パターンを示します。 コントロール パターンの詳細については、「 UI オートメーション コントロール パターンの概要」を参照してください。
コントロール パターン | 支援 | 注記 |
---|---|---|
IExpandCollapseProvider | 依存 | データ項目を展開または折りたたんで情報の表示と非表示を切り替えることができる場合は、展開折りたたみパターンがサポートされている必要があります。 |
IGridItemProvider | 依存 | データ項目は、項目間の空間移動が可能なコンテナー内でデータ項目のコレクションが使用可能な場合に、グリッド項目パターンをサポートします。 |
IScrollItemProvider | 依存 | すべてのデータ項目は、データ コンテナーに画面に収まらない項目が多い場合に、スクロール項目パターンを使用してビューにスクロールする機能をサポートしています。 |
ISelectionItemProvider | イエス | すべてのデータ項目は、アイテムが選択されたタイミングを示すために、選択項目パターンをサポートする必要があります。 |
ITableItemProvider | 依存 | データ項目が Data Grid コントロール型に含まれている場合は、このパターンがサポートされます。 |
IToggleProvider | 依存 | データ項目に、循環可能な状態が含まれている場合。 |
IValueProvider | 依存 | データ項目のプライマリ テキストが編集可能な場合は、値パターンをサポートする必要があります。 |
大規模なリストのデータ項目の操作
多くの場合、大きなリストは、パフォーマンスを支援するために UI フレームワーク内で仮想化されたデータです。 このため、UI オートメーション クライアントでは、UI オートメーション クエリ機能を使用して、他の項目コンテナーと同じ方法で完全なツリーの内容を取得することはできません。 クライアントは、データ項目から情報の完全なセットにアクセスする前に、項目をスクロールして表示する (またはコントロールを展開してすべての貴重なオプションを表示する) 必要があります。
データ項目の UI オートメーション要素で SetFocus
を呼び出すと、Microsoft Windows エクスプローラーの場合は正常に値が返され、データ項目サブツリー内でフォーカスを編集に設定されます。
必要な UI オートメーション イベント
次の表に、すべてのデータ項目コントロールでサポートされる必要がある UI オートメーション イベントを示します。 イベントの詳細については、「 UI オートメーション イベントの概要」を参照してください。
UI オートメーション イベント | 支援 | 注記 |
---|---|---|
AutomationFocusChangedEvent | 必須 | 無し |
BoundingRectangleProperty プロパティ変更イベント。 | 必須 | 無し |
IsEnabledProperty プロパティ変更イベント。 | 必須 | 無し |
IsOffscreenProperty プロパティ変更イベント。 | 必須 | 無し |
NameProperty プロパティ変更イベント。 | 必須 | 無し |
StructureChangedEvent | 必須 | 無し |
InvokedEvent | 依存 | 無し |
ExpandCollapseStateProperty プロパティ変更イベント。 | 依存 | 無し |
ElementAddedToSelectionEvent | 必須 | 無し |
ElementRemovedFromSelectionEvent | 必須 | 無し |
ElementSelectedEvent | 必須 | 無し |
ToggleStateProperty プロパティ変更イベント。 | 依存 | 無し |
ValueProperty プロパティ変更イベント。 | 依存 | 無し |
DataItem コントロール型の例
次の図は、列の豊富な情報をサポートするリスト ビュー コントロールの DataItem コントロール型を示しています。
データ項目コントロールに関連する UI オートメーション ツリーのコントロール ビューとコンテンツ ビューを以下に表示します。 各オートメーション要素の制御パターンをかっこで囲んで示します。 グループ "Contoso" は、Data Grid ホスト コントロールのグリッドの一部でもあります。
UI オートメーション ツリー - コントロール ビュー | UI オートメーション ツリー - コンテンツ ビュー |
---|---|
- グループ "Contoso" (テーブル、グリッド) - DataItem "Accounts Receivable.doc" (TableItem、GridItem、SelectionItem、Invoke) - イメージ "Accounts Receivable.doc" - Edit "Name" (TableItem、GridItem、Value "Accounts Receivable.doc") - "変更日" の編集 (TableItem、GridItem、値 "8/25/2006 3:29 PM") - "Size" の編集 (GridItem、TableItem、値 "11.0 KB") - DataItem "Accounts Payable.doc" (TableItem、GridItem、SelectionItem、Invoke) - ... |
- グループ "Contoso" (テーブル、グリッド) - DataItem "Accounts Receivable.doc" (TableItem、GridItem、SelectionItem、Invoke) - イメージ "Accounts Receivable.doc" - Edit "Name" (TableItem、GridItem、Value "Accounts Receivable.doc") - "変更日" の編集 (TableItem、GridItem、値 "8/25/2006 3:29 PM") - "Size" の編集 (GridItem、TableItem、値 "11.0 KB") - DataItem "Accounts Payable.doc" (TableItem、GridItem、SelectionItem、Invoke) - … |
グリッドが選択可能な項目の一覧を表す場合、対応する UI 要素は、DataItem コントロール型ではなく ListItem コントロール型で公開できます。 前の例では、Group ("Contoso") の下の DataItem 要素 ("Accounts Receivable.doc" と "Accounts Payable.doc") は、ListItem コントロール型として公開することで改善できます。これは、その型が SelectionItem コントロール パターンを既にサポートしているためです。