次の方法で共有


MenuBar コントロールの種類

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

メニュー バー コントロールは、MenuBar コントロール型を実装するコントロールの例です。 メニュー バーは、ユーザーがアプリケーションに含まれるコマンドとオプションをアクティブ化するための手段を提供します。

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

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

一般的なツリー構造

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

コントロール ビュー コンテンツ ビュー
  • MenuBar
    • MenuItem (1 つ以上)
    • その他のコントロール (0 または多)
  • 該当なし
    • MenuItem (1 つ以上)
    • その他のコントロール (0 または多)

 

メニュー バー コントロールは常にコントロール ビューに表示されますが、コンテンツ ビューには表示されません。通常、エンド ユーザーに意味のある情報が伝わらないためです (アプリケーションに複数のメニュー バーが含まれていない場合)。

UI オートメーション クライアントは、UIA_MenuModeStartEventId イベントをリッスンして、UI がメニュー モードになったときに常に通知されるようにすることができます。 アプリケーションがメニュー モードの場合、メニュー ナビゲーション用にすべてのキーボード入力をキャプチャできます (たとえば、「s」と入力すると、アプリケーション クライアント領域に文字を入力する代わりに 保存 メニューが呼び出されることがあります)。 UIA_MenuModeStartEventId イベントは、論理整合性を確保するために、最初の UIA_MenuOpenedEventId イベントの前に置く必要があります。 UIA_MenuModeEndEventId イベントは、最後の UIA_MenuClosedEventId イベントの後に続きます。 メニュー項目をクリックすると、すぐに UIA_MenuModeStartEventId イベントがトリガーされ、その後に UIA_MenuOpenedEventId イベントがトリガーされる場合があります。

メニュー バー コントロールには、その構造内に他のコントロール (エディット コントロールやコンボ ボックスなど) を含めることができます。 これらの追加コントロールは、コントロールおよびコンテンツ ビューで上に示した "その他のコントロール" に対応します。

関連するプロパティ

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

UI オートメーション プロパティ 価値 筆記
UIA_AcceleratorKeyPropertyId ヌル 通常、メニュー バーにはアクセラレータ キーはありません。
UIA_AccessKeyPropertyId "Alt" 通常、Alt キーを押すと、アプリケーション内のメニュー バーにフォーカスが移動します。
UIA_BoundingRectanglePropertyId ノートを参照してください。 このプロパティによって公開される値には、その中に含まれるすべてのコントロールが含まれている必要があります。
UIA_ControlTypePropertyId MenuBar
UIA_IsContentElementPropertyId メニュー バー コントロールは、UI オートメーション ツリーのコンテンツ ビューには含まれません。
UIA_IsControlElementPropertyId メニュー バー コントロールは、常に UI オートメーション ツリーのコントロール ビューに含まれます。
UIA_IsKeyboardFocusablePropertyId メニュー バー コントロールはキーボードフォーカス可能です。含まれるコントロールはキーボード フォーカスを取得できるためです。
UIA_IsOffscreenPropertyId ノートを参照してください。 このプロパティの値は、コントロールが画面上で表示可能かどうかによって異なります。
UIA_LabeledByPropertyId ヌル 通常、メニュー バー コントロールにはラベルがありません。
UIA_LocalizedControlTypePropertyId ノートを参照してください。 MenuBar コントロール型に対応するローカライズされた文字列。 既定値は、en-US または英語 (米国) の "メニュー バー" です。
UIA_NamePropertyId ノートを参照してください。 アプリケーションに複数のメニュー バーがない限り、メニュー バー コントロールには名前は必要ありません。 アプリケーションに複数のメニュー バーがある場合は、このプロパティを使用して、"書式設定" や "アウトライン" などの識別名を公開します。
UIA_OrientationPropertyId 依存 このプロパティは、メニュー バー コントロールが水平か垂直かを示します。

 

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

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

コントロール パターン 支える 筆記
IExpandCollapseProviderする 依存 コントロールを展開または折りたたむことができる場合は、ExpandCollapse コントロール パターンを実装する必要があります。
IDockProvider 依存 コントロールを画面のさまざまな部分にドッキングできる場合は、Dock コントロール パターンを実装する必要があります。
ITransformProvider 依存 コントロールのサイズ変更、回転、または移動が可能な場合は、Transform コントロール パターンを実装する必要があります。

 

必要なイベント

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

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

 

概念

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

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