叫用控制項模式
描述實作 IInvokeProvider的指導方針和慣例,包括方法的相關資訊。 叫用控制項模式是用來支援在啟動時不會維護狀態,而是起始或執行單一明確動作的控制項。
維護狀態的控制項,例如核取方塊和選項按鈕,必須改為分別實作 IToggleProvider 和 ISelectionProvider 。 如需實作此控制項模式的控制項範例,請參閱 控制項類型及其支援的控制項模式。
本主題包含下列各節。
實作方針和慣例
實作 叫 用控制項模式時,請注意下列指導方針和慣例:
如果相同的行為未透過另一個控制項模式提供者公開,控制項會實作 IInvokeProvider 。 例如,如果控制項上的 IUIAutomationInvokePattern::Invoke 方法執行與 IUIAutomationExpandCollapsePattern::Expand 或 Collapse 方法相同的動作,控制項不應該實作 IInvokeProvider。
通常按一下、按兩下或按 ENTER、使用預先定義的鍵盤快速鍵,或其他按鈕組合,就可以叫用控制項。
Invoked事件 (UIA_Invoke_InvokedEventId) 事件會在已啟動 (控制項上引發,以回應執行其相關聯動作的控制項) 。 在可能的情況下,應該是在控制項完成該動作並返回,且沒有發生封鎖時才會引發該事件。 在下列案例中維護Invoke要求之前,應該先引發叫用事件 (UIA_Invoke_InvokedEventId) :
- 無法或不適合等待至動作完成。
- 動作需要使用者互動。
- 動作費時,且會導致發出呼叫的用戶端長時間凍結。
如果叫用控制項有顯著的副作用,應該透過 HelpText 屬性公開這些副作用。 例如,即使 IUIAutomationInvokePattern::Invoke 並未與選取專案相關聯, Invoke 可能會導致另一個控制項被選取。
暫留 (或滑鼠停留) 效果通常不會構成 叫 用事件。 不過,執行動作的控制項 (,而不是根據暫留狀態造成視覺效果) 應該支援 叫 用控制項模式。
注意
如果控制項的叫用是與滑鼠相關的副作用所造成的,便會將這個實作視為協助工具問題。
叫用控制項和選擇項目不同。 但是,依據控制項而定,叫用某些控制項可能會有造成此項目受到選取的副作用。 例如,叫用 [我的文件] 資料夾中的 Microsoft Word 文件清單項目時,便會選取該項目並開啟文件。
專案可以在叫用時立即從 Microsoft 消費者介面自動化 樹狀結構消失。 要求事件回呼所提供的項目資訊,可能會因此而失敗。 建議的解決方法是預先擷取快取的資訊。
控制項可以實作多個控制項模式。 例如,Microsoft Excel 工具列上的 填滿色彩 控制項會實作 Invoke 和 ExpandCollapse 控制項模式。 ExpandCollapse 控制項模式會公開功能表,而 [叫 用] 控制項模式會以所選色彩填滿使用中的選取範圍。
IInvokeProvider的必要成員
實作 IInvokeProvider 介面需要下列方法。
必要成員 | 成員類型 | 備註 |
---|---|---|
調用 | 方法 |
Invoke 是非同步呼叫,必須立即傳回,而不會封鎖。 對於叫用時直接或間接啟動強制回應對話方塊的控制項,此行為尤其重要。 任何引發事件的使用者介面自動化用戶端都會維持封鎖的狀態,直到強制回應對話方塊關閉為止。 |
此控制項模式沒有任何相關聯的屬性或事件。