UI オートメーションによる MenuItem コントロール型のサポート
更新 : 2007 年 11 月
ここでは、Microsoft UI オートメーションによる MenuItem コントロール型のサポートに関する情報を示します。コントロールの Microsoft UI オートメーション ツリー構造について説明し、MenuItem コントロール型に必要なプロパティとコントロール パターンを示します。
メニュー コントロールを使用すると、コマンドとイベント ハンドラに関連付けられている要素を階層的に編成できます。典型的な Microsoft Windows アプリケーションでは、メニュー バーに複数のメニュー項目 ([ファイル]、[編集]、[ウィンドウ] など) が含まれ、それぞれのメニュー項目はメニューを表示します。メニューには、メニュー項目 ([新規作成]、[開く]、[閉じる] など) のコレクションが含まれます。これらのメニュー項目は、クリックされると拡張して追加のメニュー項目を表示したり、特定のアクションを実行したりすることができます。
以下のセクションでは、MenuItem コントロール型で必要な UI オートメーション ツリー構造、プロパティ、コントロール パターン、およびイベントを定義します。UI オートメーションの各要件は、Windows Presentation Foundation (WPF)、Win32、Windows フォーム のいずれの場合でも、すべてのリスト コントロールに当てはまります。
このトピックには次のセクションが含まれています。
- 必須の UI オートメーション ツリー構造
- 必須の UI オートメーション プロパティ
- 必須の UI オートメーション コントロール パターン
- メニュー項目の UI オートメーション イベント
- 必須の UI オートメーション イベント
- 従来の問題
- 関連トピック
必須の UI オートメーション ツリー構造
次の表では、メニュー項目コントロールに関連する UI オートメーション ツリーのコントロール ビューとコンテンツ ビューを示し、各ビューに格納できるものについて説明します。UI オートメーション ツリーの詳細については、「UI オートメーション ツリーの概要」を参照してください。
コントロール ビュー |
コンテンツ ビュー |
---|---|
|
|
メニュー項目コントロールのコントロール ビューは、上記のUI オートメーション ツリー構造を持ちます。構造をわかりやすく説明するために、メニュー バーに関する Help のメニュー項目が追加されたことに注意してください。
コンテンツ ビューについては、エンド ユーザーにとって有用な情報が提供されないため、UI オートメーション ツリーにメニューはありません。
必須の UI オートメーション プロパティ
次の表に、値または定義が特にメニュー項目コントロールに関連する UI オートメーション プロパティを示します。UI オートメーション プロパティの詳細については、「クライアントの UI オートメーション プロパティ」を参照してください。
プロパティ |
値 |
説明 |
---|---|---|
AutomationIdProperty() |
説明を参照。 |
このプロパティの値は、アプリケーションのすべてのコントロールで一意にする必要があります。 |
説明を参照。 |
コントロール全体を包含する外側の四角形。 |
|
説明を参照。 |
外接する四角形が存在する場合はサポートされます。外接する四角形の範囲内にクリック不可能な点が存在するときに特別なヒット テストを実行する場合は、クリック可能な点をオーバーライドして提供します。 |
|
説明を参照。 |
コントロールがキーボード フォーカスを受け取ることができる場合は、このプロパティをサポートする必要があります。 |
|
説明を参照。 |
メニュー項目コントロールは、UI オートメーション ツリーのコンテンツ ビューに含まれ、名前が自動的にラベル付けされています。 |
|
Null |
ラベルなし。 |
|
MenuItem |
この値は、すべての UI フレームワークで共通です。 |
|
"メニュー項目" |
MenuItem コントロール型に対応するローカライズされた文字列。 |
|
True |
メニュー項目コントロールは UI オートメーション ツリーのコンテンツ ビューには含まれません。 |
|
True |
メニュー項目コントロールは、UI オートメーション ツリーのコントロール ビューに常に含まれる必要があります。 |
必須の UI オートメーション コントロール パターン
メニュー項目コントロールでサポートする必要がある UI オートメーション コントロール パターンの一覧を次の表に示します。コントロール パターンの詳細については、「UI オートメーション コントロール パターンの概要」を参照してください。
コントロール パターン/パターン プロパティ |
サポート/値 |
説明 |
---|---|---|
依存 |
コントロールを展開または折りたたむことができる場合は、IExpandCollapseProvider を実装します。 |
|
依存 |
コントロールが単一のアクションまたはコマンドを実行する場合は、IInvokeProvider を実装します。 |
|
依存 |
コントロールが有効または無効にできるオプションを表す場合は、IToggleProvider を実装します。 |
|
依存 |
コントロールが、メニュー項目のオプションのリストから選択するために使用されている場合は、ISelectionItemProvider を実装します。 |
メニュー項目の UI オートメーション イベント
メニュー項目コントロールに関連付けられている Microsoft UI オートメーション イベントを次の表に示します。
イベント |
サポート |
説明 |
---|---|---|
依存 |
コントロールが呼び出しコントロール パターンをサポートしている場合に、発生させる必要があります。 |
|
ToggleStateProperty プロパティ変更イベント。 |
依存 |
コントロールがトグル コントロール パターンをサポートしている場合に、発生させる必要があります。 |
ExpandCollapseStateProperty プロパティ変更イベント。 |
依存 |
コントロールが展開/折りたたみコントロール パターンをサポートしている場合に、発生させる必要があります。 |
依存 |
なし。 |
必須の UI オートメーション イベント
すべてのメニュー項目コントロールでサポートする必要がある UI オートメーション イベントを次の表に示します。イベントの詳細については、「UI オートメーション イベントの概要」を参照してください。
UI オートメーション イベント |
サポート/値 |
説明 |
---|---|---|
依存 |
なし |
|
依存 |
なし |
|
依存 |
なし |
|
依存 |
なし |
|
BoundingRectangleProperty プロパティ変更イベント。 |
必須 |
なし |
IsOffscreenProperty プロパティ変更イベント。 |
必須 |
なし |
IsEnabledProperty プロパティ変更イベント。 |
必須 |
なし |
ExpandCollapseStateProperty プロパティ変更イベント。 |
依存 |
なし |
ToggleStateProperty プロパティ変更イベント。 |
依存 |
なし |
必須 |
なし |
|
必須 |
なし |
従来の問題
トグル パターンは、Win32 メニュー項目がチェックされ、トグル パターンのサポートに必要であるとプログラムによって判断できる場合のみ、サポートされます。Win32 メニュー項目はチェック可能かどうかを公開しないため、呼び出しパターンはメニュー項目がチェックされていない場合にサポートされます。メニュー項目がトグル パターンのみサポートしている場合でも例外が作成され、呼び出しパターンが常にサポートされます。これは、メニュー項目がチェックされていなかったときに呼び出しパターンをサポートしていた要素が、メニュー項目がチェックされたことによって呼び出しパターンをサポートしなくなったようにクライアントが混同するのを防ぐためです。