共用方式為


叫用控件模式

說明實作 IInvokeProvider的指導方針和慣例,包括方法的相關信息。 Invoke 控制項模式可用來支援在啟動時不會維護狀態,而是起始或執行單一明確動作的控件。

維護狀態的控件,例如複選框和單選按鈕,必須分別實作 IToggleProviderISelectionProvider。 如需實作此控制項模式的控制項範例,請參閱 控制項類型和其支援的控制項模式

本主題包含下列各節。

實作指導方針和慣例

實作 Invoke 控件模式時,請注意下列指導方針和慣例:

  • 如果相同的行為未透過另一個控件模式提供者公開,控件會實作 IInvokeProvider。 例如,如果控件上的 IUIAutomationInvokePattern::Invoke 方法執行與 IUIAutomationExpandCollapsePattern::ExpandCollapse 方法相同的動作,則控件不應該實作 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自動化用戶端都會保持封鎖狀態,直到模式對話框關閉為止。

此控制項模式沒有相關聯的屬性或事件。

控件類型及其支援的控制模式

UI 自動化控制項模式概觀

UI 自動化樹狀結構概觀

UIA_Invoke_InvokedEventId