클라이언트용 UI 자동화 컨트롤 패턴

참고 항목

이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다. UI 자동화에 대한 최신 정보는 Windows 자동화 API: UI 자동화를 참조하세요.

이 개요에서는 UI 자동화 클라이언트에 대한 컨트롤 패턴을 소개합니다. UI 자동화 클라이언트에서 컨트롤 패턴을 사용하여 UI(사용자 인터페이스)에 대한 정보에 액세스하는 방법도 소개합니다.

컨트롤 패턴은 컨트롤 형식 및 컨트롤의 모양에 관계없이 컨트롤의 기능을 분류하고 노출하는 방법을 제공합니다. UI 자동화 클라이언트는 AutomationElement 를 검사하여 지원되는 컨트롤 패턴을 확인하고 컨트롤의 동작을 보장할 수 있습니다.

컨트롤 패턴의 전체 목록은 UI Automation Control Patterns Overview를 참조하세요.

컨트롤 패턴 가져오기

클라이언트는 AutomationElement 또는 AutomationElement.GetCachedPattern 을 호출하여 AutomationElement.GetCurrentPattern에서 컨트롤 패턴을 검색합니다.

클라이언트는 GetSupportedPatterns 메서드 또는 개별 IsPatternAvailable 속성(예: IsTextPatternAvailableProperty)을 사용하여 패턴이나 패턴 그룹이 AutomationElement에서 지원되는지 확인할 수 있습니다. 그러나 컨트롤 패턴을 가져오고 null 참조를 테스트하면 프로세스 간 호출을 줄일 수 있으므로 지원되는 속성을 확인하고 컨트롤 패턴을 검색하는 것보다 더 효율적입니다.

다음 예제에서는 TextPattern 에서 AutomationElement컨트롤 패턴을 가져오는 방법을 보여 줍니다.

// Specify the control type we're looking for, in this case 'Document'
PropertyCondition cond = new PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.Document);

// target --> The root AutomationElement.
AutomationElement textProvider = target.FindFirst(TreeScope.Descendants, cond);

targetTextPattern = textProvider.GetCurrentPattern(TextPattern.Pattern) as TextPattern;

if (targetTextPattern == null)
{
    Console.WriteLine("Root element does not contain a descendant that supports TextPattern.");
    return;
}

컨트롤 패턴에 대한 속성 검색

클라이언트는 AutomationElement.GetCachedPropertyValue 또는 AutomationElement.GetCurrentPropertyValue 를 호출하고 적절한 형식으로 반환되는 개체를 캐스팅하여 컨트롤 패턴에 대한 속성 값을 검색할 수 있습니다. UI 자동화 속성에 대한 자세한 내용은 클라이언트용 UI 자동화 속성을 참조하세요.

접근자를 통해 GetPropertyValue 메서드 외에 CLR(공용 언어 런타임)을 통해 속성 값을 검색하여 패턴에 대한 UI 자동화 속성에 액세스할 수 있습니다.

가변 패턴을 사용하는 컨트롤

일부 컨트롤 형식은 컨트롤의 상태 또는 컨트롤이 사용되는 방식에 따라 다양한 패턴을 지원합니다. 가변 패턴을 사용할 수 있는 컨트롤의 예로는 목록 보기(미리 보기, 타일, 아이콘, 목록, 자세히), Microsoft Excel 차트(원형, 꺾은선형, 막대형, 수식이 있는 셀 값), Microsoft Word의 문서 영역(기본, 웹 모양, 개요, 인쇄 모양, 인쇄 미리 보기) 및 Microsoft Windows Media Player 스킨이 있습니다.

사용자 지정 컨트롤 형식을 구현하는 컨트롤에는 해당 기능을 나타내는 데 필요한 컨트롤 패턴 집합이 있을 수 있습니다.

참고 항목