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

メモメモ

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

ここでは、Microsoft UI Automationによる MenuItem コントロール型のサポートに関する情報を示します。 コントロールの Microsoft UI Automation ツリー構造について説明し、MenuItem コントロール型に必要なプロパティとコントロール パターンを示します。

メニュー コントロールを使用すると、コマンドとイベント ハンドラーに関連付けられている要素を階層的に編成できます。 典型的な Microsoft Windows アプリケーションでは、メニュー バーに複数のメニュー項目 ([ファイル]、[編集]、[ウィンドウ] など) が含まれ、それぞれのメニュー項目はメニューを表示します。 メニューには、メニュー項目 ([新規作成]、[開く]、[閉じる] など) のコレクションが含まれます。これらのメニュー項目は、クリックされると拡張して追加のメニュー項目を表示したり、特定のアクションを実行したりすることができます。 メニュー項目は、メニュー、メニュー バー、またはツール バーでホストできます。

以下のセクションでは、MenuItem コントロール型で必要な UI Automation ツリー構造、プロパティ、コントロール パターン、およびイベントを定義します。 UI Automationの各要件は、Windows Presentation Foundation (WPF)、Win32、Windows Forms のいずれの場合でも、すべてのリスト コントロールに当てはまります。

このトピックは、次のセクションで構成されています。

  • 必須の UI オートメーション ツリー構造
  • 必須の UI オートメーション プロパティ
  • 必須の UI オートメーション コントロール パターン
  • メニュー項目の UI オートメーション イベント
  • 必須の UI オートメーション イベント
  • 従来の問題
  • 関連トピック

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

次の表では、メニュー項目コントロールに関連する UI Automation ツリーのコントロール ビューとコンテンツ ビューを示し、各ビューに格納できるものについて説明します。 UI Automation ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。

コントロール ビュー

コンテンツ ビュー

MenuItem "Help"

  • Menu (Help メニュー項目のサブメニュー)

    • MenuItem "Help Topics"

    • MenuItem "About Notepad"

MenuItem "Help"

  • MenuItem "Help Topics"

  • MenuItem "About Notepad"

メニュー項目コントロールのコントロール ビューは、上記のUI Automation ツリー構造を持ちます。 構造をわかりやすく説明するために、メニューからサブメニューへの典型的な階層構造に Help メニュー項目が含まれていることに注意してください。

コンテンツ ビューについては、エンド ユーザーにとって有用な情報が提供されないため、UI Automation ツリーにメニューはありません。

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

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

プロパティ

説明

AutomationIdProperty

説明を参照。

このプロパティの値は、アプリケーションのすべてのコントロールで一意にする必要があります。

BoundingRectangleProperty

説明を参照。

コントロール全体を包含する外側の四角形。

ClickablePointProperty

説明を参照。

外接する四角形が存在する場合はサポートされます。 外接する四角形の範囲内にクリック不可能な点が存在するときに特別なヒット テストを実行する場合は、クリック可能な点をオーバーライドして提供します。

IsKeyboardFocusableProperty

説明を参照。

コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。

NameProperty

説明を参照。

メニュー項目コントロールは、UI Automation ツリーのコンテンツ ビューに含まれ、名前が自動的にラベル付けされています。

LabeledByProperty

Null

ラベルなし。

ControlTypeProperty

MenuItem

この値は、すべての UI フレームワークで共通です。

LocalizedControlTypeProperty

"メニュー項目"

MenuItem コントロール型に対応するローカライズされた文字列。

IsContentElementProperty

True

メニュー項目コントロールは UI Automation ツリーのコンテンツ ビューには含まれません。

IsControlElementProperty

True

メニュー項目コントロールは、UI Automation ツリーのコントロール ビューに常に含まれる必要があります。

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

メニュー項目コントロールでサポートする必要がある UI Automation コントロール パターンの一覧を次の表に示します。 コントロール パターンの詳細については、「UI オートメーション コントロール パターンの概要」を参照してください。

コントロール パターン プロパティ

サポート

説明

IExpandCollapseProvider

依存

コントロールを展開または折りたたむことができる場合は、IExpandCollapseProvider を実装します。

IInvokeProvider

依存

コントロールが単一のアクションまたはコマンドを実行する場合は、IInvokeProvider を実装します。

IToggleProvider

依存

コントロールが有効または無効にできるオプションを表す場合は、IToggleProvider を実装します。

ISelectionItemProvider

依存

コントロールが、メニュー項目のオプションのリストから選択するために使用されている場合は、ISelectionItemProvider を実装します。

メニュー項目の UI オートメーション イベント

メニュー項目コントロールに関連付けられている Microsoft UI Automation イベントを次の表に示します。

イベント

サポート

説明

InvokedEvent

依存

コントロールが呼び出しコントロール パターンをサポートしている場合に、発生させる必要があります。

ToggleStateProperty プロパティ変更イベント。

依存

コントロールがトグル コントロール パターンをサポートしている場合に、発生させる必要があります。

ExpandCollapseStateProperty プロパティ変更イベント。

依存

コントロールが展開/折りたたみコントロール パターンをサポートしている場合に、発生させる必要があります。

ElementSelectedEvent

依存

なし。

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

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

UI Automation イベント

サポート/値

説明

InvokedEvent

依存

なし

ElementAddedToSelectionEvent

依存

なし

ElementRemovedFromSelectionEvent

依存

なし

ElementSelectedEvent

依存

なし

BoundingRectangleProperty プロパティ変更イベント

必須

なし

IsOffscreenProperty プロパティ変更イベント

必須

なし

IsEnabledProperty プロパティ変更イベント

必須

なし

ExpandCollapseStateProperty プロパティ変更イベント

依存

なし

ToggleStateProperty プロパティ変更イベント

依存

なし

AutomationFocusChangedEvent

必須

なし

StructureChangedEvent

必須

なし

従来の問題

トグル パターンは、Win32 メニュー項目がチェックされ、トグル パターンのサポートに必要であるとプログラムによって判断できる場合のみ、サポートされます。 Win32 メニュー項目はチェック可能かどうかを公開しないため、呼び出しパターンはメニュー項目がチェックされていない場合にサポートされます。 メニュー項目がトグル パターンのみサポートしている場合でも例外が作成され、呼び出しパターンが常にサポートされます。 これは、メニュー項目がチェックされていなかったときに呼び出しパターンをサポートしていた要素が、メニュー項目がチェックされたことによって呼び出しパターンをサポートしなくなったようにクライアントが混同するのを防ぐためです。

参照

参照

MenuItem

概念

UI オートメーション コントロール パターンの概要

UI オートメーション コントロール型の概要

UI オートメーションの概要