實作 UI 自動化 Window 控制項模式
注意
本文件適用對象為 .NET Framework 開發人員,其想要使用 System.Windows.Automation 命名空間中定義的受控 UI 自動化類別。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:UI 自動化。
本主題簡介實作 IWindowProvider的方針和慣例,包括 WindowPattern 屬性、方法和事件的相關資訊。 其他參考的連結列於此主題的結尾部分。
WindowPattern 控制項模式是用來支援在傳統圖形化使用者介面 (GUI) 內提供基本視窗功能的控制項。 必須實作此控制項模式的控制項範例包括最上層應用程式視窗、多重文件介面 (MDI) 子視窗、可調整大小的分割窗格控制項、強制回應對話方塊,以及氣球說明視窗。
實作方針和慣例
實作視窗控制項模式時,請注意下列方針和慣例:
為能夠使用使用者介面自動化修改視窗大小和螢幕位置,控制項除了必須實作 ITransformProvider 之外,還必須實作 IWindowProvider。
若控制項包含可讓它移動、調整大小、最大化、最小化或關閉的標題列和標題列項目,通常必須實作 IWindowProvider。
工具提示快顯視窗和下拉式方塊或下拉式功能表等控制項通常不會實作 IWindowProvider。
氣球說明視窗與基本工具提示快顯視窗的不同之處,在於前者提供了類似視窗的 [關閉] 按鈕。
IWindowProvider 不支援全螢幕模式,因為它對應用程式是功能特定的,而不是典型的視窗行為。
IWindowProvider 的必要成員
IWindowProvider 介面需要下列屬性、方法和事件。
必要成員 | 成員類型 | 備註 |
---|---|---|
InteractionState | 屬性 | 無 |
IsModal | 屬性 | 無 |
IsTopmost | 屬性 | 無 |
Maximizable | 屬性 | 無 |
Minimizable | 屬性 | 無 |
VisualState | 屬性 | 無 |
Close | 方法 | 無 |
SetVisualState | 方法 | 無 |
WaitForInputIdle | 方法 | 無 |
WindowClosedEvent | Event | 無 |
WindowOpenedEvent | Event | 無 |
WindowInteractionState | Event | 不保證是 ReadyForUserInteraction |
例外狀況
提供者必須擲回下列例外狀況。
例外狀況類型 | Condition |
---|---|
InvalidOperationException | SetVisualState - 當控制項不支援所要求的行為時。 |
ArgumentOutOfRangeException | WaitForInputIdle - 當參數不是有效的數字時。 |