共用方式為


MenuItem 控制件類型的UI自動化支援

備註

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

本主題提供 MenuItem 控制件類型Microsoft UI 自動化支援的相關信息。 它描述控制件的Microsoft UI 自動化樹狀結構,並提供 MenuItem 控制項類型所需的屬性和控制項模式。

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

下列各節會定義 MenuItem 控制項類型所需的 UI 自動化樹狀結構、屬性、控制件模式和事件。 使用者介面自動化需求適用於所有清單控件,無論是 Windows Presentation Foundation (WPF)、Win32 還是 Windows Forms。

必要的 UI 自動化樹狀結構

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

控制項檢視 內容檢視
MenuItem “Help”

  • 選單 (說明選單項的子選單)

    • MenuItem “Help Topics”
    • MenuItem “關於記事本”
MenuItem “Help”

- MenuItem “說明主題”
- MenuItem “About Notepad”

功能表項控制件的控件檢視具有上述UI自動化樹狀結構。 請注意,「說明」選單項目被包含在內,以更好地展示一般選單到子選單層次結構。

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

必要的UI自動化屬性

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

房產 價值觀 說明
AutomationIdProperty 請參閱備註。 這個屬性的值在應用程式中的所有控件中必須是唯一的。
BoundingRectangleProperty 請參閱備註。 包含整個控制項的最外層矩形。
ClickablePointProperty 請參閱備註。 如果有周框,則支援 。 如果周框內的每個點都無法點選,而且您執行特製化的點擊測試,則覆寫並提供可點選的點。
IsKeyboardFocusableProperty 請參閱備註。 如果控制項可接收鍵盤焦點,就必定支援此屬性。
NameProperty 請參閱備註。 選單項控制項包含在 UI 自動化樹狀結構的內容檢視中,並使用名稱自我標記。
LabeledByProperty Null 沒有標籤。
ControlTypeProperty 選單項目 此值與所有使用者介面架構的值相同。
LocalizedControlTypeProperty 選單項目 對應 MenuItem 控制元類型的在地化字串。
IsContentElementProperty 選單項目控制項永遠不會包含在UI自動化樹的內容檢視中。
IsControlElementProperty 功能表項控制項必須始終包含在 UI 自動化樹狀結構的控制項檢視中。

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

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

控制件模式屬性 支援 註釋
IExpandCollapseProvider 視情況而定 如果控制項可以展開或折疊,請實作 IExpandCollapseProvider
IInvokeProvider 視情況而定 如果控制項執行單一動作或命令,請實作 IInvokeProvider
IToggleProvider 視情況而定 如果控制項代表可以開啟或關閉的選項,請實作 IToggleProvider
ISelectionItemProvider 視情況而定 如果控件是用來從選單項目中的選項清單中進行選擇,請實作ISelectionItemProvider

功能表項的 UI 自動化事件

下表列出與功能表項控件相關聯的Microsoft UI 自動化事件。

事件 支援 說明
InvokedEvent 視情況而定 如果控制項支援呼叫控制項模式,則必須引發相應事件。
ToggleStateProperty 屬性變更事件。 視情況而定 如果控制項支援切換控制樣式,必須引發 。
ExpandCollapseStateProperty 屬性變更事件。 視情況而定 如果控制項支援展開/摺疊控制模式,則必須觸發事件。
ElementSelectedEvent 視情況而定 沒有。

必要的UI自動化事件

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

UI 自動化事件 支援/值 註釋
InvokedEvent 視情況而定 沒有
ElementAddedToSelectionEvent 視情況而定 沒有
ElementRemovedFromSelectionEvent 視情況而定 沒有
ElementSelectedEvent 視情況而定 沒有
BoundingRectangleProperty 屬性變更事件。 為必填項目 沒有
IsOffscreenProperty 屬性變更事件。 為必填項目 沒有
IsEnabledProperty 屬性變更事件。 為必填項目 沒有
ExpandCollapseStateProperty 屬性變更事件。 視情況而定 沒有
ToggleStateProperty 屬性變更事件。 視情況而定 沒有
AutomationFocusChangedEvent 為必填項目 沒有
StructureChangedEvent 為必填項目 沒有

舊版問題

只有在核取 Win32 功能表項目時,才能支援 "切換模式",而且可以程式化判斷是否有必要支援 "切換模式"。 因為 Win32 功能表項不會公開它是否能夠被檢查,所以當功能表項未被核取時,將會支援叫用模式。 即使是應只支援切換模式的功能表項,也將破例一律支援叫用模式。 這是為了避免用戶端感到困惑,即支援叫用模式的元素(未核取功能表項時)一旦功能表項被核取後便不再支援該模式。

另請參閱