MenuItem 控制件類型
本主題提供 MenuItem 控件類型Microsoft UI 自動化支援的相關信息。
功能表控制項允許階層式組織與命令和事件處理程式相關聯的專案。 在典型的 Windows 應用程式中,功能表欄包含數個功能表項(例如 檔案、[編輯] 和 [視窗],而每個功能表項都會顯示功能表。 功能表包含功能表項集合(例如 [新增]、[開啟] 和 [關閉]],這些功能表項可以展開以顯示其他功能表項,或在單擊時執行特定動作。
下列各節會定義 MenuItem 控件類型所需的 UI 自動化樹狀結構、屬性、控制件模式和事件。 使用者介面自動化需求適用於所有功能表項控制項,其中UI架構/平臺會整合控件類型和控制樣式的UI自動化支援。
本主題包含下列各節。
一般樹狀結構
下表描述與功能表項控制件相關的UI自動化樹狀結構一般控件和內容檢視,並描述每個檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀。
控件檢視 | 內容檢視 |
---|---|
|
|
功能表項控制件的控件檢視具有上述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 功能表項不會公開是否可以檢查它,所以未核取功能表項時,支援叫用控件模式。 一律支援叫用控件模式,即使是僅支援切換控件模式所需的功能表項也一樣。 如此一來,當支援 叫用 控件模式的功能表項時,用戶端就不會變得困惑(當功能表項未核取時)不再支援該模式。
相關主題