次の方法で共有


メニュー コントロールの種類

このトピックでは、メニュー コントロールの種類に対する Microsoft UI オートメーションのサポートについて説明します。

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

次のセクションでは、Menu コントロール型に必要な UI オートメーション ツリー構造、プロパティ、コントロール パターン、およびイベントを定義します。 UI オートメーションの要件は、UI フレームワーク/プラットフォームがコントロールの種類とコントロール パターンに対する UI オートメーションのサポートを統合するすべてのメニュー コントロールに適用されます。

このトピックには、次のセクションが含まれています。

一般的なツリー構造

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

コントロール ビュー コンテンツ ビュー
  • メニュー
    • MenuItem (1 つまたは複数)
    • その他のコントロール (0 または多)
  • メニュー
    • MenuItem (1 つまたは複数)
    • その他のコントロール (0 または多)

 

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

メニュー コントロールには、編集コントロールやコンボ ボックスなどの他のコントロールをその構造内に含めることができます。 これらの追加コントロールは、コントロール ビューとコンテンツ ビューの前の表に示した "その他のコントロール" に対応します。

関連するプロパティ

次の表に、Menu コントロール型に特に関連する値または定義を持つ UI オートメーション プロパティを示します。 UI オートメーション プロパティの詳細については、「UI オートメーション要素からプロパティを取得する」を参照してください。

UI オートメーション プロパティ 価値 筆記
UIA_ControlTypePropertyId メニューの
UIA_IsContentElementPropertyId メニュー コントロールは、常に UI オートメーション ツリーのコンテンツ ビューに含まれます。
UIA_IsControlElementPropertyId メニュー コントロールは、UI オートメーション ツリーのコントロール ビューに常に含まれます。
UIA_LabeledByPropertyId ヌル 一般的なメニュー コントロールでは、ラベルは使用されません。
UIA_NamePropertyId ノートを参照してください。 メニュー コントロールでは、Name プロパティを設定する必要はありません。または、サブメニューを開いたメニュー項目など、関連付けられているコントロールと同じ名前を持つことができます。

 

必要なコントロール パターン

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

必要なイベント

メニュー コントロールは、画面に表示されるときに UIA_MenuOpenedEventId イベントを発生させる必要があります。 UIA_MenuOpenedEventId イベントには、コントロールのテキストが含まれます。 UIA_MenuClosedEventId イベントは、メニューが画面から消えたときに発生する必要があります。

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

UI オートメーション イベント 筆記
UIA_AutomationFocusChangedEventId
プロパティ変更イベント UIA_BoundingRectanglePropertyId します。
プロパティ変更イベントを UIA_IsEnabledPropertyId します。 コントロールが IsEnabled プロパティをサポートしている場合は、このイベントをサポートする必要があります。
プロパティ変更イベント UIA_IsOffscreenPropertyId します。 コントロールが IsOffscreen プロパティをサポートしている場合は、このイベントをサポートする必要があります。
UIA_MenuClosedEventId
UIA_MenuOpenedEventId
UIA_StructureChangedEventId

 

概念

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

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