Поделиться через


UIElement.OnCreateAutomationPeer Метод

Определение

При реализации в производном классе возвращает реализации AutomationPeer для конкретного класса для инфраструктуры автоматизации пользовательского интерфейса Майкрософт.

protected:
 virtual AutomationPeer ^ OnCreateAutomationPeer() = OnCreateAutomationPeer;
AutomationPeer OnCreateAutomationPeer();
protected virtual AutomationPeer OnCreateAutomationPeer();
function onCreateAutomationPeer()
Protected Overridable Function OnCreateAutomationPeer () As AutomationPeer

Возвращаемое значение

Возвращаемый подкласс AutomationPeer для конкретного класса.

Примеры

Вся реализация OnCreateAutomationPeer должна состоять из создания пользовательского однорангового класса автоматизации и его возврата.

protected override AutomationPeer OnCreateAutomationPeer() 
{
    return new MediaContainerAP(this, mediaElement); 
}
#include "MediaContainerAP.h"
...
public:
    MyNamespace::MediaContainerAP OnCreateAutomationPeer()
    {
        return winrt::make<MyNamespace::implementation::MediaContainerAP>(*this, mediaElement());
    }
protected:
    virtual AutomationPeer^ OnCreateAutomationPeer() override
    {
        return ref new MediaContainerAP(this, mediaElement);
    }
};
Protected Overrides Function OnCreateAutomationPeer() As AutomationPeer
    Return New MediaContainerAP(Me, mediaElement)
End Function

Комментарии

Дополнительные сведения о назначении однорангового узла автоматизации и о том, почему может потребоваться определить класс AutomationPeer , см. в разделе Пользовательские одноранговые узлы автоматизации.

Этот метод следует переопределить в пользовательском классе, в котором требуется предоставить пользовательский одноранговый узел автоматизации для автоматизации пользовательского интерфейса Майкрософт, а не одноранговый узел по умолчанию, на который ссылается реализация OnCreateAutomationPeer по умолчанию. Определение пользовательского однорангового узла для пользовательского элемента управления зависит от требований к специальным возможностям, контракта пользовательского интерфейса и поведения элемента управления. Дополнительные сведения о том, почему может потребоваться определить новый одноранговый узел, см. в статье Пользовательские одноранговые узлы автоматизации.

Примечание

Этот пример не поддерживается и может не компилироваться.

См. пример специальных возможностей XAML для реализации OnCreateAutomationPeer, который определяет пользовательский одноранговый узел, возвращаемый OnCreateAutomationPeer (реализация однорангового узла является частью сценария 3 в этом примере).

Рекомендуется, чтобы реализация OnCreateAutomationPeer не делала ничего, кроме как инициализировать новый экземпляр пользовательского однорангового узла автоматизации, передавая вызывающий элемент управления в качестве владельца и возвращая этот экземпляр. Не пытайтесь вводить в этот метод дополнительную логику. В частности, любая логика, которая потенциально способна привести к уничтожению AutomationPeer в рамках того же вызова, может стать причиной непредусмотренного поведения при выполнении.

Применяется к

См. также раздел