共用方式為


MenuBar 控件類型的UI自動化支援

備註

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

本主題提供控制類型的 UI 自動化支援 MenuBar 相關資訊。 在UI自動化中,控件類型是控制項必須符合的一組條件,才能使用 ControlTypeProperty 屬性。 這些條件包括UI自動化樹狀結構、UI自動化屬性值和控件模式的特定指導方針。

功能表欄控件是實作 MenuBar 控件類型的控件範例。 功能表列提供一種方法,讓使用者啟用應用程式中包含的命令和選項。

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

必要的 UI 自動化樹狀結構

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

控制項檢視 內容檢視
MenuBar

- MenuItem(1 或以上)
- 其他控制件 (0 或許多)
MenuBar

- MenuItem(1 或以上)
- 其他控制件 (0 或許多)

功能表欄控制項可以包含其他控制項,例如編輯控制項和組合框。 這些額外的控件會對應至控件和內容檢視中所列的「其他控制件」。

必要的UI自動化屬性

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

UI 自動化屬性 價值觀 註釋
BoundingRectangleProperty 請參閱備註。 這個屬性所公開的值必須包含它內含的所有控制件。
NameProperty 請參閱備註。 除非應用程式有多個功能表欄,否則功能表欄控制項不需要名稱。 如果應用程式中有多個功能表欄,則此屬性應該用來公開辨別名稱,例如「格式化」或「大綱」。
LabeledByProperty Null 功能表欄控件永遠不會有標籤。
ControlTypeProperty MenuBar 此值與所有使用者介面架構的值相同。
LocalizedControlTypeProperty “功能表欄” 對應至 MenuBar 控制項類型的當地語系化字串。
IsContentElementProperty 選單列控制項一律包含在UI自動化樹的內容檢視中。
IsControlElementProperty 功能表欄控件一律包含在UI自動化樹狀結構的控件檢視中。
IsOffscreenProperty 請參閱備註。 這個屬性的值取決於控件是否可在畫面上檢視。
OrientationProperty 視情況而定 這個屬性會公開功能表欄控件是水平還是垂直。
IsKeyboardFocusableProperty 功能表欄控制項是鍵盤焦點,因為它們所包含的控件可以取得鍵盤焦點。
HelpTextProperty 請參閱備註。 在功能表欄控件中沒有需要說明文字的情況。
AcceleratorKeyProperty Null 功能表欄永遠不會有快捷鍵。
AccessKeyProperty “ALT” 按下 ALT 鍵應該一律將焦點放在應用程式內的功能表列。

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

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

控制件模式 支援 註釋
IExpandCollapseProvider 視情況而定 如果控制項可以展開或折疊,請實作 IExpandCollapseProvider
IDockProvider 視情況而定 如果控制項可以停駐到畫面的不同部分,請執行 IDockProvider
ITransformProvider 視情況而定 如果控制元件可以重設大小、旋轉或移動,則必須實作 ITransformProvider

必要的UI自動化事件

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

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

另請參閱