備註
本檔適用於想要使用 System.Windows.Automation 命名空間中定義的受控UI自動化類別的 .NET Framework 開發人員。 如需 UI 自動化的最新資訊,請參閱 Windows 自動化 API:使用者介面自動化。
本主題介紹實作 IInvokeProvider的指導方針和慣例,包括事件和屬性的相關信息。 主題結尾會列出其他參考的連結。
控件 InvokePattern 模式是用來支持在啟動時不會維護狀態,而是起始或執行單一明確動作的控件。 保持狀態的控制項,例如複選框和單選按鈕,必須分別使用 IToggleProvider 和 ISelectionItemProvider。 如需實作叫用控件模式的控件範例,請參閱 UI自動化用戶端的控件模式對應。
實作指導方針和慣例
實作叫用控件模式時,請注意下列指導方針和慣例:
如果相同的行為未透過另一個控制項模式提供者公開,控制項會使用IInvokeProvider。 例如,如果控制項上的 Invoke 方法執行與 Expand 或 Collapse 方法相同的動作,則該控制項不應該實作 IInvokeProvider。
叫用控件通常是藉由按兩下或按兩下或按 ENTER、預先定義的鍵盤快捷方式,或按鍵的一些替代組合來執行。
InvokedEvent 會在已啟動的控件上引發 (作為對執行其相關聯動作之控件的回應)。 如果可能的話,在控件完成動作並傳回而不封鎖之後,應該引發 事件。 在以下情境中,應在處理 Invoke 請求之前先觸發 Invoked 事件:
無法或實際地等到動作完成為止。
動作需要用戶互動。
動作很耗時,而且會導致呼叫用戶端封鎖大量時間。
如果叫用控件具有顯著的副作用,則應該透過 HelpText 屬性公開這些副作用。 例如,即使 Invoke 未與選取專案相關聯, Invoke 也可能會導致另一個控件被選取。
暫留 (或滑鼠停留) 效果通常不會構成 Invoked 事件。 不過,根據暫留狀態執行動作的控件(而不是造成視覺效果),應該支援 InvokePattern 控件模式。
備註
如果控件只能因為滑鼠相關副作用而叫用,這個實作就會被視為輔助功能問題。
叫用控件與選取專案不同。 不過,視控件而定,叫用它可能會導致項目選取為副作用。 例如,叫用 [我的文檔] 資料夾中的 Microsoft Word 檔案清單項目會選取項目並開啟檔。
元素可能在被叫用後立即從 UI 自動化樹狀結構中消失。 要求事件回呼所提供之元素的資訊可能會因此失敗。 建議預先擷取快取的資訊因應措施。
控制件可以實作多個控制項模式。 例如,Microsoft Excel 工具列上的填滿色彩控件同時實作了InvokePattern 和ExpandCollapsePattern 控件模式。 ExpandCollapsePattern 顯示功能表,而 InvokePattern 則以所選顏色填滿目前選取範圍。
IInvokeProvider 的必要成員
實作 IInvokeProvider需要下列屬性和方法。
必要成員 | 成員類型 | 註釋 |
---|---|---|
Invoke | 方法 |
Invoke 是異步呼叫,而且必須立即傳回而不封鎖。 對於直接或間接叫用時啟動強制回應對話框的控件而言,此行為特別重要。 煽動事件的任何UI自動化用戶端都會保持封鎖狀態,直到模式對話框關閉為止。 |
例外狀況
提供者必須擲回下列例外狀況。
例外狀況類型 | 狀況 |
---|---|
ElementNotEnabledException | 如果控制未被啟用。 |