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