FrameworkElementAutomationPeer.CreatePeerForElement(UIElement) Methode

Definition

Erstellt ein FrameworkElementAutomationPeer für das angegebene 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

Parameter

element
UIElement

Das UIElement , das diesem FrameworkElementAutomationPeer zugeordnet ist.

Gibt zurück

Ein FrameworkElementAutomationPeer.

Beispiele

CreatePeerForElement ist nützlich, wenn Sie einen Peer schreiben, der die Peerinformationen von einem seiner Komponententeile weiterleitet, da dies der Komponententeil ist, der ein Muster implementieren kann, wie in der GetPatternCore-Implementierung des Peers angefordert. Wenn z. B. einer der Standard Komponenten eines Steuerelements ein ScrollViewer ist, kann das Steuerelement selbst eine andere Funktion haben und nicht direkt scrollen. Der Peer möchte jedoch möglicherweise weiterhin unterstützung für ein Bildlaufmuster melden und einen Peer bereitstellen, damit ein Client mit dem Automatisierungsmuster des Bildlaufteils interagieren kann.

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);
}

Hinweise

CreatePeerForElement ist eine Hilfsklasse, die vom benutzerdefinierten Steuerungscode verwendet wird, um die fungierende Peer-instance zurückzugeben. Mithilfe des zurückgegebenen Peers können Sie Automatisierungsereignisse innerhalb derselben Routinen auslösen, die auch Ihre allgemeinen Steuerungslogikereignisse auslösen oder Steuerelementeigenschaften ändern. Sie können auch eigene Hilfsmethoden schreiben, die dies tun und aus Ihrer Steuerelementlogik aufgerufen werden.

Das erstellte FrameworkElementAutomationPeer verbleibt im Arbeitsspeicher, bis das zugeordnete UIElement zerstört wird. Die gleiche instance des FrameworkElementAutomationPeer wird von nachfolgenden Aufrufen von CreatePeerForElement und Aufrufen von FromElement zurückgegeben, die auf dasselbe Element instance verweisen.

Der Typ des zurückgegebenen Peers wird durch die OnCreateAutomationPeer-Implementierung des relevanten UIElement bestimmt, bei dem es sich in der Regel um ein Steuerelement handelt. Wenn der Klassencode für den ElementtypOnCreateAutomationPeer nicht implementiert, wird kein Peer erstellt, und CreatePeerForElement gibt NULL zurück. Als bewährte Methode sollten Sie nach dem Aufruf von CreatePeerForElement immer auf NULL überprüfen, da es eine Reihe von Windows-Runtime-Elementen gibt, die keine OnCreateAutomationPeer-Implementierung aufweisen. Ein ContentControl-Steuerelement verfügt beispielsweise standardmäßig nicht über einen Peer, es sei denn, es ist angepasst oder ein stärker abgeleitetes Windows-Runtime-Steuerelement.

CreatePeerForElement hat im Grunde das gleiche Verhalten wie FromElement.

CreatePeerForElement kann den Peer zurückgeben, auch wenn die CreateAutomationPeer-Systemlogik aus irgendeinem Grund noch nicht auf dem Elementziel ausgeführt wurde. Es ruft intern dieselbe CreateAutomationPeer-Logik auf, um den Peer abzurufen.

Gilt für:

Weitere Informationen