實作 UI 自動化 Selection 控制項模式
注意
本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化。
本主題將介紹實作 ISelectionProvider的方針和慣例,包括事件和屬性的相關資訊。 其他參考的連結列於此主題的結尾部分。
SelectionPattern 控制項模式是用以支援當作可選取子項目集合的容器使用的控制項。 這個項目的子系必須實作 ISelectionItemProvider。 如需實作此控制項模式的控制項範例,請參閱 Control Pattern Mapping for UI Automation Clients。
實作方針和慣例
實作選取控制項模式時,請注意下列方針和慣例:
實作 ISelectionProvider 的控制項允許選取一個或多個子項目。 例如,清單方塊、清單檢視和樹狀檢視都支援多重選取,而下拉式方塊、滑桿和選項按鈕群組則支援單一選取。
有最小值、最大值和連續範圍的控制項 (如 [音量] 滑桿控制項),應實作 IRangeValueProvider ,而不是實作 ISelectionProvider。
若單一選取項目控制項有實作 IRawElementProviderFragmentRoot 的子控制項,例如 [顯示內容] 對話方塊中的 [螢幕解析度] 滑桿或 Microsoft Word 的 [色彩選擇器] 選取項目控制項 (如下所示),應實作 ISelectionProvider,其子系應實作 IRawElementProviderFragment 和 ISelectionItemProvider。
色樣字串對應範例
- 功能表不支援 SelectionPattern。 若使用的功能表項目同時包含圖形和文字 (例如 Microsoft Outlook [檢視] 功能表中的 [預覽窗格] 項目),而有必要傳達狀態,則應實作 IToggleProvider。
ISelectionProvider 的必要成員
ISelectionProvider 介面需要下列屬性、方法和事件。
必要成員 | 類型 | 備註 |
---|---|---|
CanSelectMultiple | 屬性 | 應支援使用 AddAutomationPropertyChangedEventHandler 和 RemoveAutomationPropertyChangedEventHandler的屬性變更事件。 |
IsSelectionRequired | 屬性 | 應支援使用 AddAutomationPropertyChangedEventHandler 和 RemoveAutomationPropertyChangedEventHandler的屬性變更事件。 |
GetSelection | 方法 | 無 |
InvalidatedEvent | Event | 當容器中的選項大幅變更,需要傳送比 InvalidateLimit 常數所允許的更多新增和移除事件時,會引發此事件。 |
IsSelectionRequired 和 CanSelectMultiple 屬性可以是動態的。 例如,控制項的最初狀態可能預設沒有選取任何項目,表示 IsSelectionRequired 為 false
。 不過,在選取項目之後,控制項就必須至少有一個項目一律保持為選取。 同樣地,在極少數的情況下,控制項可能會允許最初選取多個項目,但之後就只允許單一選取。
例外狀況
提供者必須擲回下列例外狀況。
例外狀況類型 | Condition |
---|---|
ElementNotEnabledException | 如果未啟用此控制項。 |
InvalidOperationException | 如果隱藏此控制項。 |