Condividi tramite


FrameworkElementAutomationPeer.CreatePeerForElement(UIElement) Metodo

Definizione

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

Parametri

element
UIElement

UIElement associato a questo FrameworkElementAutomationPeer.

Restituisce

FrameworkElementAutomationPeer.

Esempio

CreatePeerForElement è utile se si sta scrivendo un peer che inoltra le informazioni peer da una delle relative parti del componente, perché è la parte componente che potrebbe implementare un modello come richiesto nell'implementazione GetPatternCore del peer. Ad esempio, se una delle parti principali di un controllo è un controllo ScrollViewer , il controllo stesso potrebbe avere un'altra funzione e non scorre direttamente. Tuttavia, il peer potrebbe comunque voler segnalare il supporto per un modello di scorrimento e fornire un peer in modo che un client possa interagire con il modello di automazione della parte di scorrimento.

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

Commenti

CreatePeerForElement è una classe helper usata dal codice di controllo personalizzato per restituire l'istanza peer agendo. Usando il peer restituito, è possibile generare eventi di automazione dall'interno delle stesse routine che attivano anche gli eventi della logica di controllo generale o le proprietà del controllo delle modifiche. In alternativa, è possibile scrivere metodi helper personalizzati che eseguono questa operazione e vengono richiamati dalla logica di controllo.

Il FrameworkElementAutomationPeer creato rimane in memoria fino a quando l'OGGETTO UIElement associato non viene eliminato definitivamente. La stessa istanza di FrameworkElementAutomationPeer viene restituita dalle chiamate successive a CreatePeerForElement e chiamate a FromElement che fanno riferimento alla stessa istanza dell'elemento.

Il tipo del peer restituito è determinato dall'implementazione OnCreateAutomationPeerdell'OGGETTO UIElement pertinente, che in genere è un controllo. Se il codice di classe per il tipo di elemento non implementa OnCreateAutomationPeer, non viene creato alcun peer e CreatePeerForElement restituisce null. Come procedura consigliata, è consigliabile verificare sempre la presenza di null dopo aver chiamato CreatePeerForElement, perché esistono diversi elementi Windows Runtime che non avranno un'implementazione OnCreateAutomationPeer. Ad esempio, un controllo ContentControl non ha un peer per impostazione predefinita, a meno che non sia personalizzato o sia un controllo Windows Runtime più derivato.

CreatePeerForElement ha fondamentalmente lo stesso comportamento di FromElement.

CreatePeerForElement può restituire il peer anche se la logica di sistema CreateAutomationPeer non è ancora stata eseguita nella destinazione dell'elemento per qualche motivo. Richiama internamente la stessa logica CreateAutomationPeer per ottenere il peer.

Si applica a

Vedi anche