비고
이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다. UI 자동화에 대한 최신 정보는 Windows Automation API: UI 자동화참조하세요.
이 개요에서는 UI 자동화 클라이언트에 대한 컨트롤 패턴을 소개합니다. 여기에는 UI 자동화 클라이언트가 컨트롤 패턴을 사용하여 UI(사용자 인터페이스)에 대한 정보에 액세스하는 방법에 대한 정보가 포함됩니다.
컨트롤 패턴은 컨트롤 유형 또는 컨트롤의 모양과 관계없이 컨트롤의 기능을 분류하고 노출하는 방법을 제공합니다. UI 자동화 클라이언트는 어떤 컨트롤 패턴이 AutomationElement 지원되는지 확인하고 컨트롤의 동작을 확인할 수 있습니다.
컨트롤 패턴의 전체 목록은 UI 자동화 컨트롤 패턴 개요를 참조하세요.
컨트롤 패턴 가져오기
클라이언트는 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 스킨이 있습니다.
사용자 지정 컨트롤 형식을 구현하는 컨트롤에는 해당 기능을 나타내는 데 필요한 컨트롤 패턴 집합이 있을 수 있습니다.