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