FrameworkElementAutomationPeer.CreatePeerForElement(UIElement) 方法

定義

public:
 static AutomationPeer ^ CreatePeerForElement(UIElement ^ element);
 static AutomationPeer CreatePeerForElement(UIElement const& element);
public static AutomationPeer CreatePeerForElement(UIElement element);
function createPeerForElement(element)
Public Shared Function CreatePeerForElement (element As UIElement) As AutomationPeer

參數

element
UIElement

與此FrameworkElementAutomationPeer相關聯的UIElement

傳回

FrameworkElementAutomationPeer

範例

如果您撰寫從其中一個元件元件轉送對等資訊的對等,因為其元件可能會實作模式的元件元件,因此在對等的 GetPatternCore 實作中要求時,CreatePeerForElement 會很有用。 例如,如果其中一個控制項的主要元件元件元件是 ScrollViewer ,控制項本身可能會有一些其他功能,而且不會直接捲動。 但是對等可能仍想要報告 捲動 模式的支援,並提供對等,讓用戶端可以與捲動元件的自動化模式互動。

protected override object GetPatternCore(PatternInterface patternInterface)
{
    if (patternInterface == PatternInterface.Scroll)
    {
        ItemsControl owner = (ItemsControl) base.Owner;
        UIElement itemsHost = owner.ItemsHost;
        ScrollViewer element = null;
        while (itemsHost != owner)
        {
            itemsHost = VisualTreeHelper.GetParent(itemsHost) as UIElement;
            element = itemsHost as ScrollViewer;
            if (element != null)
            {
                break;
            }
        }
        if (element != null)
        {
            AutomationPeer peer = FrameworkElementAutomationPeer.CreatePeerForElement(element);
            if ((peer != null) && (peer is IScrollProvider))
            {
                return (IScrollProvider) peer;
            }
        }
    }
    return base.GetPatternCore(patternInterface);
}

備註

CreatePeerForElement 是協助程式類別,由自訂控制項程式碼用來傳回作用中的對等實例。 使用傳回的對等,您可以從相同的常式內引發自動化事件,同時引發一般控制項邏輯事件或變更控制項屬性。 或者,您可以撰寫自己的協助程式方法,以執行此動作並從控制項邏輯叫用。

建立的 FrameworkElementAutomationPeer 會保留在記憶體中,直到相關聯的 UIElement 終結為止。 FrameworkElementAutomationPeer的相同實例會從後續對 CreatePeerForElement 的呼叫傳回,並呼叫參考相同元素實例的FromElement

傳回的對等類型是由相關UIElementOnCreateAutomationPeer實作所決定,這通常是Control。 如果 專案 類型的類別程式碼未實作 OnCreateAutomationPeer,則不會建立對等,而且 CreatePeerForElement 會傳回 null。 最佳做法是呼叫 CreatePeerForElement 之後,您應該一律檢查Null,因為有許多Windows 執行階段元素不會有OnCreateAutomationPeer 實作。 例如,ContentControl預設不會有對等,除非它是自訂的或更衍生的Windows 執行階段控制項。

CreatePeerForElement 基本上與 FromElement的行為相同。

即使 CreateAutomationPeer 系統邏輯因某些原因尚未在 專案 目標上執行,CreatePeerForElement 仍可傳回對等。 它會在內部叫用相同的 CreateAutomationPeer 邏輯,以取得對等。

適用於

另請參閱