實作 UI 自動化 Value 控制項模式
注意
本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化。
本主題將介紹實作 IValueProvider的方針和慣例,包括事件和屬性的相關資訊。 其他參考的連結列於此主題的結尾部分。
ValuePattern 控制項模式用來支援不跨越某個範圍的內建值且可以表示為字串的控制項。 這個字串可以是可編輯的,視控制項及其設定而定。 如需實作此模式的控制項範例,請參閱 T:System.Windows.Automation.Provider.IValueProvider。
實作方針和慣例
實作值控制項模式時,請注意下列方針和慣例:
- 如果任何項目的值是可編輯的,則例如 ListItem 和 TreeItem 等控制項必須支援 ValuePattern ,而不論控制項目前的編輯模式為何。 如果子項目是可編輯的,父控制項也必須支援 ValuePattern 。
可編輯的清單項目範例
單行編輯控制項支援藉由實作 IValueProvider,以程式設計方式存取其內容。 不過,多行編輯控制項不會實作 IValueProvider;它們是改為藉由實作 ITextProvider來提供其內容的存取。
若要擷取多行編輯控制項的文字內容,控制項必須實作 ITextProvider。 不過, ITextProvider 不支援設定控制項的值。
IValueProvider 不支援擷取格式設定資訊或子字串值。 在這些案例中請實作 ITextProvider 。
IValueProvider 必須由來自 Microsoft Word 的色彩選擇器選項控制項等控制項實作 (以下說明),其支援色彩值 (例如「黃色」) 和對等內部 RGB 結構之間的字串對應。
色樣字串對應範例
- 控制項的 IsEnabledProperty 應該設為
true
, IsReadOnlyProperty 應該設為false
,才能允許呼叫 SetValue。
IValueProvider 的必要成員
以下是實作 IValueProvider的必要屬性和方法。
必要成員 | 成員類型 | 備註 |
---|---|---|
IsReadOnlyProperty | 屬性 | 無 |
ValueProperty | 屬性 | 無 |
SetValue | 方法 | 無 |
例外狀況
提供者必須擲回下列例外狀況。
例外狀況類型 | Condition |
---|---|
InvalidOperationException | SetValue - 如果地區設定特有的資訊以不正確的格式傳遞至控制項,例如日期格式不正確。 |
ArgumentException | SetValue - 如果新的值不能從字串轉換成控制項可辨識的格式。 |
ElementNotEnabledException | SetValue - 嘗試對未啟用的控制項進行操作時。 |