FrameworkElementAutomationPeer.CreatePeerForElement(UIElement) Méthode

Définition

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

Paramètres

Retours

FrameworkElementAutomationPeer.

Exemples

CreatePeerForElement est utile si vous écrivez un homologue qui transfère les informations d’homologue à partir de l’une de ses parties de composant, car il s’agit du composant qui peut implémenter un modèle comme demandé dans l’implémentation GetPatternCore de l’homologue. Par exemple, si l’un des composants main d’un contrôle est un ScrollViewer, le contrôle lui-même peut avoir une autre fonction et ne fait pas défiler directement. Toutefois, l’homologue peut toujours souhaiter signaler la prise en charge d’un modèle Scroll et fournir un homologue afin qu’un client puisse interagir avec le modèle d’automatisation de la partie de défilement.

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

Remarques

CreatePeerForElement est une classe d’assistance qui est utilisée par le code de contrôle personnalisé pour retourner l’homologue agissant instance. À l’aide de l’homologue retourné, vous pouvez déclencher des événements d’automatisation à partir des mêmes routines qui déclenchent également vos événements de logique de contrôle général ou modifient les propriétés de contrôle. Vous pouvez également écrire vos propres méthodes d’assistance qui effectuent cette opération et qui sont appelées à partir de votre logique de contrôle.

Le FrameworkElementAutomationPeer créé reste en mémoire jusqu’à ce que l’élément UIElement associé soit détruit. La même instance de FrameworkElementAutomationPeer est retournée à partir des appels suivants à CreatePeerForElement et des appels à FromElement qui font référence au même élément instance.

Le type de l’homologue retourné est déterminé par l’implémentation OnCreateAutomationPeer de l’élément UIElement approprié, qui est généralement un contrôle. Si le code de classe pour le type d’élément n’implémente pas OnCreateAutomationPeer, aucun homologue n’est créé et CreatePeerForElement retourne null. Il est recommandé de toujours case activée pour null après avoir appelé CreatePeerForElement, car il existe un certain nombre d’éléments Windows Runtime qui n’auront pas d’implémentation OnCreateAutomationPeer. Par exemple, un ContentControl n’a pas d’homologue par défaut, sauf s’il est personnalisé ou s’il s’agit d’un contrôle Windows Runtime plus dérivé.

CreatePeerForElement a essentiellement le même comportement que FromElement.

CreatePeerForElement peut retourner l’homologue même si la logique système CreateAutomationPeer n’a pas encore été exécutée sur la cible de l’élément pour une raison quelconque. Il appelle la même logique CreateAutomationPeer en interne afin d’obtenir l’homologue.

S’applique à

Voir aussi