共用方式為


MenuItem 控制件類型

本主題提供 MenuItem 控件類型Microsoft UI 自動化支援的相關信息。

功能表控制項允許階層式組織與命令和事件處理程式相關聯的專案。 在典型的 Windows 應用程式中,功能表欄包含數個功能表項(例如 檔案[編輯] 和 [視窗],而每個功能表項都會顯示功能表。 功能表包含功能表項集合(例如 [新增][開啟] 和 [關閉]],這些功能表項可以展開以顯示其他功能表項,或在單擊時執行特定動作。

下列各節會定義 MenuItem 控件類型所需的 UI 自動化樹狀結構、屬性、控制件模式和事件。 使用者介面自動化需求適用於所有功能表項控制項,其中UI架構/平臺會整合控件類型和控制樣式的UI自動化支援。

本主題包含下列各節。

一般樹狀結構

下表描述與功能表項控制件相關的UI自動化樹狀結構一般控件和內容檢視,並描述每個檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀

控件檢視 內容檢視
  • MenuItem “Help”
    • 選單 (說明選單項的子選單)
      • MenuItem “Help Topics”
      • MenuItem “關於記事本”
  • MenuItem “Help”
    • MenuItem “Help Topics”
    • MenuItem “關於記事本”

 

功能表項控制件的控件檢視具有上述UI自動化樹狀結構。 請注意,功能表欄上已新增 說明 的功能表項,以更清楚地說明結構。

針對內容檢視,功能表 不存在於使用者介面自動化樹狀結構中,因為它不會將有意義的資訊傳達給使用者。

相關屬性

下表列出UI自動化屬性,其值或定義與 MenuItem 控件類型特別相關。 如需 UI 自動化屬性的詳細資訊,請參閱 從 UI 自動化元素擷取屬性

UI 自動化屬性 價值 筆記
UIA_AutomationIdPropertyId 請參閱附注。 在UI自動化樹狀結構的原始檢視中,此屬性的值在所有對等專案之間必須是唯一的。 如果已知元素在使用者介面的不同實例之間保持一致,請配置功能表項 AutomationId 屬性。 如果功能表項是動態填入且無法預測的,請將 AutomationId 保留空白 屬性。
UIA_BoundingRectanglePropertyId 請參閱附注。 包含整個控件的最外框。
UIA_ClickablePointPropertyId 請參閱附注。 如果有周框,則支援 。 如果周框內的每個點都無法點選,且元素會執行特製化的點擊測試、覆寫並提供可點選的點。
UIA_ControlTypePropertyId MenuItem
UIA_IsContentElementPropertyId 功能表項控制件一律包含在UI自動化樹狀結構的內容檢視中。
UIA_IsControlElementPropertyId 功能表項控制件一律包含在UI自動化樹狀結構的控件檢視中。
UIA_IsKeyboardFocusablePropertyId 請參閱附注。 如果控件可以接收鍵盤焦點,它必須支援這個屬性。
UIA_LocalizedControlTypePropertyId 請參閱附注。 對應至 MenuItem 控件類型的當地語系化字串。 預設值為 en-US 或英文 (美國) 的 「功能表項」。
UIA_NamePropertyId 請參閱附注。 功能表項控制件的名稱是用來為其加上標籤的文字。

 

必要的控制件模式

下表列出功能表項控制項需要支援的UI自動化控制件模式。 如需控制樣式的詳細資訊,請參閱 UI 自動化控制樣式概觀

控制件模式 支援 筆記
IExpandCollapseProvider 取決於 如果控件可以展開或折疊,請實作 IExpandCollapseProvider
IInvokeProvider 取決於 如果控制項執行單一動作或命令,請實作 IInvokeProvider
ISelectionItemProvider 取決於 如果使用 控制單項之間的選項清單選擇,請實作 ISelectionItemProvider
IToggleProvider 取決於 如果控制項代表可以開啟或關閉的選項,請實作 IToggleProvider

 

必要事件

下表列出需要功能表項控制項才能支援的UI自動化事件。 如需事件的詳細資訊,請參閱 UI 自動化事件概觀

UI 自動化事件 筆記
UIA_AutomationFocusChangedEventId
UIA_BoundingRectanglePropertyId 屬性變更事件。
UIA_ExpandCollapseExpandCollapseStatePropertyId 屬性變更事件。 如果控件支援 ExpandCollapse 控件模式,則必須支援此事件。
UIA_Invoke_InvokedEventId 如果控件支援 Invoke 控件模式,則必須支援此事件。
UIA_IsEnabledPropertyId 屬性變更事件。 如果控件支援 IsEnabled 屬性,則必須支援這個事件。
UIA_IsOffscreenPropertyId 屬性變更事件。 如果控件支援 IsOffscreen 屬性,它就必須支援這個事件。
UIA_SelectionItem_ElementAddedToSelectionEventId 如果控件支援 SelectionItem 控件模式,則必須支援這個事件。
UIA_SelectionItem_ElementRemovedFromSelectionEventId 如果控件支援 SelectionItem 控件模式,則必須支援這個事件。
UIA_SelectionItem_ElementSelectedEventId 如果控件支援 SelectionItem 控件模式,則必須支援這個事件。
UIA_StructureChangedEventId
UIA_ToggleToggleStatePropertyId 屬性變更事件。 如果控件支援 切換 控件模式,它必須支援這個事件。

 

舊版問題

針對 Microsoft Win32 功能表項,只有在檢查功能表項時,才支援 Toggle 控件模式,而且可以以程式設計方式判斷是否需要切換控件模式的支援。 因為 Win32 功能表項不會公開是否可以檢查它,所以未核取功能表項時,支援叫用控件模式。 一律支援叫用控件模式,即使是僅支援切換控件模式所需的功能表項也一樣。 如此一來,當支援 叫用 控件模式的功能表項時,用戶端就不會變得困惑(當功能表項未核取時)不再支援該模式。

概念

UI 自動化控制項類型概觀

UI 自動化概觀