Menu 控制項類型的 UI 自動化支援

注意

本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化

本主題提供功能表控制項類型的 Microsoft UI 自動化支援相關資訊。 其描述控制項的 Microsoft UI 自動化樹狀結構,並提供特定控制項案例的屬性和控制項模式。

功能表控制項可將命令和事件處理常式的關聯項目以階層方式組織。 在典型的 Microsoft Windows 應用程式中,功能表列包含數個功能表按鈕 (例如 [檔案]、[編輯] 和 [視窗]),而每個功能表按鈕會顯示功能表。 功能表又包含一組功能表項目 (例如 [開新檔案] F:System.Windows.Automation.AutomationElementIdentifiers.IsEnabledProperty、[開啟舊檔] UI Automation Properties Overview和 [關閉檔案] TLA#tla_win32),這些項目可展開顯示更多的功能表項目,或在按一下時可執行特定的動作。

下列章節會定義功能表控制項類型所需的 UI 自動化樹狀結構、屬性、控制項模式與事件。 UI 自動化需求適用於所有清單控制項,無論是 Windows Presentation Foundation (WPF)、Win32 或 Windows Forms。

必要的使用者介面自動化樹狀結構

下表描述屬於功能表控制項的 UI 自動化樹狀結構內容檢視與控制項檢視,並描述各檢視可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀

控制項檢視 內容檢視
功能表

- MenuItem (1 或多個)
不適用 (除非功能表控制項為非功能表項目之物件父系的內容功能表)

- MenuItem (1 或多個)

功能表控制項一律會出現在 UI 自動化樹狀結構的控制項檢視和內容檢視。 功能表控制項類別應該顯示於其資訊所參考的控制項下方。 使用者介面自動化用戶端必須接聽 MenuOpenedEvent ,以確保它們持續取得功能表控制項所傳達的資訊。 內容功能表控制項是特殊案例。 它們會顯示為桌面的子系。

必要的使用者介面自動化屬性

下表列示 UI 自動化屬性,其值或定義與功能表控制項類型特別有關。 如需 UI 自動化屬性的詳細資訊,請參閱用戶端的 UI 自動化屬性

使用者介面自動化屬性 備註
NameProperty 不支援 功能表控制項不需要設定 Name 屬性。
LabeledByProperty Null 典型的功能表控制項不預期有標籤。
ControlTypeProperty 功能表 此值與所有使用者介面架構的值相同。
IsContentElementProperty False 功能表控制項不會包含在 UI 自動化樹狀結構的內容檢視中。
IsControlElementProperty True 功能表控制項一律包含在 UI 自動化樹狀結構的控制項檢視中。

必要的使用者介面自動化控制項模式

功能表控制項類型沒有必要的控制項模式。

必要的使用者介面自動化事件

當功能表控制項出現在畫面時,必須引發 MenuOpenedEventMenuOpenedEvent 將包含控制項的文字。 當功能表從畫面消失時,必須引發 MenuClosedEvent

下表列出所有功能表控制項必須支援的 UI 自動化事件。 如需事件的詳細資訊,請參閱 UI Automation Events Overview

UI 自動化事件 支援/值 備註
MenuOpenedEvent 必要
MenuClosedEvent 必要
BoundingRectangleProperty 屬性變更事件。 必要
IsOffscreenProperty 屬性變更事件。 必要
IsEnabledProperty 屬性變更事件。 必要
AutomationFocusChangedEvent 必要
StructureChangedEvent 必要

另請參閱