備註
本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化。
本主題提供按鈕控制項類型的UI自動化支援相關信息。 在UI自動化中,控件類型是控制項必須符合的一組條件,才能使用 ControlTypeProperty 屬性。 這些條件包括UI自動化樹狀結構、UI自動化屬性值、控件模式和UI自動化事件的特定指導方針。
按鈕是用戶互動以執行動作的物件,例如對話方塊上的 [確定 ] 和 [ 取消 ] 按鈕。 按鈕控制項是公開的簡單控件,因為它會對應至使用者想要完成的單一命令。
下列各節會定義按鈕控件類型所需的UI自動化樹狀結構、屬性、控件模式和事件。 使用者介面自動化需求適用於所有按鈕控件,無論是 Windows Presentation Foundation(WPF)、Win32 還是 Windows Forms。
必要的 UI 自動化樹狀結構
下表描述與按鈕控件相關的UI自動化樹狀結構的控件檢視和內容檢視,並描述每個檢視中可包含的內容。 如需 UI 自動化樹狀結構的詳細資訊,請參閱 UI 自動化樹狀結構概觀。
| 控制項檢視 | 內容檢視 |
|---|---|
| 按鈕 - 影像 (0 或更多) - 文字 (0 或更多) |
按鈕 |
必要的UI自動化屬性
下表列出UI自動化屬性,其值或定義與實作Button控件類型的控件特別相關(例如按鈕控制件)。 如需UI自動化屬性的詳細資訊,請參閱 用戶端的UI自動化屬性。
| UI 自動化屬性 | 價值觀 | 註釋 |
|---|---|---|
| AcceleratorKeyProperty | 請參閱備註。 | Button 控制項通常必須支援快速鍵,讓使用者能夠從鍵盤快速執行它所代表的動作。 |
| AutomationIdProperty | 請參閱備註。 | 這個屬性的值在應用程式中的所有控件中必須是唯一的。 |
| BoundingRectangleProperty | 請參閱備註。 | 包含整個控制項的最外層矩形。 |
| ClickablePointProperty | 請參閱備註。 | 如果有周框,則支援 。 如果周框內的每個點都無法點選,而且您執行特製化的點擊測試,則覆寫並提供可點選的點。 |
| ControlTypeProperty | 按鈕 | 此值與所有使用者介面架構的值相同。 |
| HelpTextProperty | 請參閱備註。 | 說明文字可以指出啟動按鈕的最終結果。 這通常是透過工具提示呈現的相同類型資訊。 |
| IsContentElementProperty | 對 | Button 控件始終必須包含內容。 |
| IsControlElementProperty | 對 | Button 控件一律必須是控件。 |
| IsKeyboardFocusableProperty | 請參閱備註。 | 如果控制項可接收鍵盤焦點,就必定支援此屬性。 |
| LabeledByProperty | Null |
按鈕控件會由其內容自我標記。 |
| LocalizedControlTypeProperty | 按鈕 | 對應至按鈕控制項類型的本地化字串。 |
| NameProperty | 請參閱備註。 | 按鈕控制件的名稱是用來為其加上標籤的文字。 每當影像用來標記按鈕時,都必須為按鈕的 Name 屬性提供替代文字。 |
必要的使用者介面自動化控制模式
下表列出所有按鈕控制項都必須支援的UI自動化控制件模式。 如需控制樣式的詳細資訊,請參閱 UI 自動化控制樣式概觀。
| 控制件模式 | 支援 | 註釋 |
|---|---|---|
| IInvokeProvider | 請參閱備註。 | 所有按鈕都應該支援叫用控件模式或切換控件模式。 當按鈕在使用者的要求下執行命令時,支援呼叫功能。 此命令對應至單一作業,例如剪下、複製、貼上或刪除。 |
| IToggleProvider | 請參閱備註。 | 所有按鈕都應該支援叫用控件模式或切換控件模式。 如果按鈕可以循環執行一系列最多三種狀態,則支援切換。 這通常被視為特定功能的開啟/關閉開關。 |
| IExpandCollapseProvider | 請參閱備註。 | 當按鈕放置為分割按鈕的子按鈕時,子按鈕可以支援 ExpandCollapse 模式,而不是叫用或切換模式。 ExpandCollapse 模式可用於開啟或關閉功能表或其他與按鈕元素相關聯的子結構。 |
必要的UI自動化事件
下表列出所有按鈕控制項都必須支援的UI自動化事件。 如需事件的詳細資訊,請參閱 UI Automation Events Overview。
| UI 自動化事件 | 支援 | 註釋 |
|---|---|---|
| AutomationFocusChangedEvent | 為必填項目 | 沒有 |
| BoundingRectangleProperty 屬性變更事件。 | 為必填項目 | 沒有 |
| IsOffscreenProperty 屬性變更事件。 | 為必填項目 | 沒有 |
| IsEnabledProperty 屬性變更事件。 | 為必填項目 | 沒有 |
| NameProperty 屬性變更事件。 | 為必填項目 | 沒有 |
| StructureChangedEvent | 為必填項目 | 沒有 |
| InvokedEvent | 視情況而定 | 如果控件支援 Invoke 控制項模式,它必須支援這個事件。 |
| ToggleStateProperty 屬性變更事件。 | 視情況而定 | 如果控件支援切換控件模式,它必須支持這個事件。 |