FrameworkElementAutomationPeer.CreatePeerForElement(UIElement) Метод

Определение

Создает FrameworkElementAutomationPeer для указанного 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

Элемент UIElement, связанный с этим FrameworkElementAutomationPeer.

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

FrameworkElementAutomationPeer.

Примеры

CreatePeerForElement полезно при написании однорангового узла, который пересылает данные однорангового узла из одной из его составных частей, так как это компонентная часть, которая может реализовать шаблон в соответствии с запросом в реализации GetPatternCore однорангового узла. Например, если одна из частей компонента элемента управления main является 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 , которые ссылаются на тот же экземпляр элемента .

Тип возвращаемого однорангового узла определяется реализацией OnCreateAutomationPeer соответствующего элемента управления UIElement, который обычно является элементом управления. Если код класса для типа элемента не реализует OnCreateAutomationPeer, одноранговый узел не создается, а CreatePeerForElement возвращает значение NULL. Рекомендуется всегда проверка значение NULL после вызова CreatePeerForElement, так как существует ряд среда выполнения Windows элементов, которые не будут иметь реализацию OnCreateAutomationPeer. Например, элемент Управления ContentControl по умолчанию не имеет однорангового узла, если он не настроен или не является более производным элементом управления среда выполнения Windows.

Поведение CreatePeerForElement в основном совпадает с поведением FromElement.

CreatePeerForElement может вернуть одноранговый узел, даже если системная логика CreateAutomationPeer еще не выполнялась в целевом элементе по какой-либо причине. Он вызовет ту же логику CreateAutomationPeer внутри системы, чтобы получить одноранговый узел.

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

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