다음을 통해 공유


FrameworkElementAutomationPeer.CreatePeerForElement(UIElement) 메서드

정의

지정된 UIElement에 대한 FrameworkElementAutomationPeer를 만듭니다.

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

FrameworkElementAutomationPeer와 연결된 UIElement입니다.

반환

FrameworkElementAutomationPeer입니다.

예제

CreatePeerForElement는 피어의 GetPatternCore 구현에서 요청된 대로 패턴을 구현할 수 있는 구성 요소 부분이기 때문에 해당 구성 요소 부분 중 하나에서 피어 정보를 전달하는 피어를 작성하는 경우에 유용합니다. 예를 들어 컨트롤의 기본 구성 요소 부분 중 하나가 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는 사용자 지정 컨트롤 코드에서 작동하는 피어 instance 반환하는 데 사용되는 도우미 클래스입니다. 반환된 피어를 사용하여 일반 제어 논리 이벤트를 발생하거나 컨트롤 속성을 변경하는 동일한 루틴 내에서 자동화 이벤트를 실행할 수 있습니다. 또는 이 작업을 수행하고 제어 논리에서 호출되는 고유한 도우미 메서드를 작성할 수 있습니다.

생성된 FrameworkElementAutomationPeer 는 연결된 UIElement 가 제거될 때까지 메모리에 남아 있습니다. FrameworkElementAutomationPeer의 동일한 instance CreatePeerForElement에 대한 후속 호출 및 동일한 요소 instance 참조하는 FromElement 호출에서 반환됩니다.

반환되는 피어의 형식은 일반적으로 Control인 관련 UIElementOnCreateAutomationPeer 구현에 의해 결정됩니다. 요소 형식에 대한 클래스 코드가 OnCreateAutomationPeer를 구현하지 않으면 피어가 생성되지 않고 CreatePeerForElement는 null을 반환합니다. OnCreateAutomationPeer 구현이 없는 Windows 런타임 요소가 많기 때문에 CreatePeerForElement를 호출한 후 항상 null에 대해 검사 것이 좋습니다. 예를 들어 ContentControl은 사용자 지정되거나 더 파생된 Windows 런타임 컨트롤이 아니면 기본적으로 피어가 없습니다.

CreatePeerForElement에는 기본적으로 FromElement와 동일한 동작이 있습니다.

CreatePeerForElement는 어떤 이유로 인해 요소 대상에서 CreateAutomationPeer 시스템 논리가 아직 실행되지 않은 경우에도 피어를 반환할 수 있습니다. 피어를 가져오기 위해 동일한 CreateAutomationPeer 논리를 내부적으로 호출합니다.

적용 대상

추가 정보