次の方法で共有


メニュー コントロール タイプの UI オートメーション サポート

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

このトピックでは、メニュー コントロールの種類に対する Microsoft UI オートメーションのサポートについて説明します。 コントロールの Microsoft UI オートメーション ツリー構造について説明し、特定のコントロール シナリオのプロパティとコントロール パターンを提供します。

メニュー コントロールを使用すると、コマンドとイベント ハンドラーに関連付けられた要素を階層的に編成できます。 一般的な Microsoft Windows アプリケーションでは、メニュー バーに複数のメニュー ボタン (ファイル編集ウィンドウなど) が含まれており、各メニュー ボタンにメニューが表示されます。 メニューには、メニュー項目のコレクション (NewOpenCloseなど) が含まれています。このコレクションを展開すると、追加のメニュー項目を表示したり、クリックしたときに特定のアクションを実行したりできます。

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

必要な UI オートメーション ツリー構造

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

コントロール ビュー コンテンツ ビュー
メニュー

- MenuItem (1 つまたは複数)
適用できません (メニュー コントロールがメニュー項目ではないオブジェクトの親であるコンテキスト メニューでない場合)

- MenuItem (1 つまたは複数)

メニュー コントロールは、UI オートメーション ツリーのコントロール ビューとコンテンツ ビューに常に表示されます。 メニュー コントロールの種類は、その情報が参照しているコントロールの下に表示されます。 UI オートメーション クライアントは、メニュー コントロールによって伝達される情報を一貫して取得できるように、 MenuOpenedEvent をリッスンする必要があります。 コンテキスト メニュー コントロールは特殊なケースです。 これらのコントロールは、デスクトップの子として表示されます。

必要な UI オートメーション プロパティ

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

UI オートメーション プロパティ 価値 注記
NameProperty サポートされていません メニュー コントロールでは、Name プロパティを設定する必要はありません。
LabeledByProperty Null 一般的なメニュー コントロールでは、ラベルは使用されません。
ControlTypeProperty メニュー この値は、すべての UI フレームワークで同じです。
IsContentElementProperty いいえ メニュー コントロールは、UI オートメーション ツリーのコンテンツ ビューには含まれません。
IsControlElementProperty 正しい メニュー コントロールは、UI オートメーション ツリーのコントロール ビューに常に含まれます。

必要な UI オートメーション コントロール パターン

Menu コントロールの種類に必要なコントロール パターンはありません。

必要な UI オートメーション イベント

メニュー コントロールは、画面に表示されるときに MenuOpenedEvent を上げる必要があります。 MenuOpenedEventには、コントロールのテキストが含まれます。 メニューが消えたときにMenuClosedEventをアクティブにする必要があります。

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

UI オートメーション イベント サポート/値 注記
MenuOpenedEvent 必須 無し
MenuClosedEvent 必須 無し
BoundingRectangleProperty プロパティ変更イベント。 必須 無し
IsOffscreenProperty プロパティ変更イベント。 必須 無し
IsEnabledProperty プロパティ変更イベント。 必須 無し
AutomationFocusChangedEvent 必須 無し
StructureChangedEvent 必須 無し

こちらも参照ください