비고
이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다. UI 자동화에 대한 최신 정보는 Windows Automation API: UI 자동화참조하세요.
이 개요에서는 Microsoft UI 자동화 컨트롤 패턴을 소개합니다. 컨트롤 패턴은 컨트롤 유형 또는 컨트롤의 모양과 관계없이 컨트롤의 기능을 분류하고 노출하는 방법을 제공합니다.
UI 자동화는 컨트롤 패턴을 사용하여 일반적인 컨트롤 동작을 나타냅니다. 예를 들어 호출할 수 있는 컨트롤(예: 단추)에 대해 Invoke 컨트롤 패턴을 사용하고 스크롤 막대가 있는 컨트롤(예: 목록 상자, 목록 보기 또는 콤보 상자)에 스크롤 컨트롤 패턴을 사용합니다. 각 컨트롤 패턴은 별도의 기능을 나타내므로 결합하여 특정 컨트롤에서 지원하는 전체 기능 집합을 설명할 수 있습니다.
비고
부모가 노출하는 기능에 대한 UI(사용자 인터페이스)를 제공하는 자식 컨트롤을 사용하여 빌드된 집계 컨트롤은 일반적으로 각 자식 컨트롤과 연결된 모든 컨트롤 패턴을 구현해야 합니다. 따라서 이러한 동일한 컨트롤 패턴은 자식 컨트롤에서 구현할 필요가 없습니다.
UI 자동화 컨트롤 패턴 구성 요소
컨트롤 패턴은 컨트롤에서 사용할 수 있는 개별 기능을 정의하는 데 필요한 메서드, 속성, 이벤트 및 관계를 지원합니다.
UI 자동화 요소와 부모, 자식 및 형제 간의 관계는 UI 자동화 트리 내에서 요소의 구조를 설명합니다.
이 메서드를 사용하면 UI 자동화 클라이언트가 컨트롤을 조작할 수 있습니다.
속성 및 이벤트는 컨트롤 패턴의 기능에 대한 정보와 컨트롤 상태에 대한 정보를 제공합니다.
인터페이스가 COM(구성 요소 개체 모델) 개체와 관련됨에 따라 컨트롤 패턴은 UI와 관련이 있습니다. COM에서 개체를 쿼리하여 지원하는 인터페이스를 묻고 해당 인터페이스를 사용하여 기능에 액세스할 수 있습니다. UI 자동화에서 UI 자동화 클라이언트는 지원하는 컨트롤 패턴을 컨트롤에 요청한 다음 지원되는 컨트롤 패턴에 의해 노출되는 속성, 메서드, 이벤트 및 구조를 통해 컨트롤과 상호 작용할 수 있습니다. 예를 들어, UI 자동화 공급자가 여러 줄 편집 상자를 구현할 때는 IScrollProvider를 사용합니다. 클라이언트가 AutomationElement가 ScrollPattern 컨트롤 패턴을 지원한다는 것을 알고 있는 경우, 해당 컨트롤 패턴에 의해 노출되는 속성, 메서드 및 이벤트를 사용하여 컨트롤에 대한 정보를 얻거나 조작할 수 있습니다.
UI 자동화 공급자 및 클라이언트
UI 자동화 공급자는 컨트롤 패턴을 구현하여 컨트롤에서 지원하는 특정 기능에 대한 적절한 동작을 노출합니다.
UI 자동화 클라이언트는 UI 자동화 컨트롤 패턴 클래스의 메서드 및 속성에 액세스하고 이를 사용하여 UI에 대한 정보를 가져오거나 UI를 조작합니다. 이러한 컨트롤 패턴 클래스는 네임스페이 System.Windows.Automation 스(예: InvokePattern 및 SelectionPattern)에서 찾을 수 있습니다.
클라이언트는 AutomationElement 메서드(예: AutomationElement.GetCurrentPropertyValue 또는 AutomationElement.GetCachedPropertyValue 공용 언어 런타임(CLR) 접근자)를 사용하여 패턴의 UI 자동화 속성에 액세스합니다. 각 컨트롤 패턴 클래스에는 해당 컨트롤 패턴을 식별하는 필드 멤버(예: InvokePattern.Pattern 또는 SelectionPattern.Pattern)가 있으며, 이 필드는 GetCachedPattern나 GetCurrentPattern의 매개 변수로 전달되어 AutomationElement에 대한 해당 패턴을 검색하는 데 사용할 수 있습니다.
동적 컨트롤 패턴
일부 컨트롤은 항상 동일한 컨트롤 패턴 집합을 지원하지는 않습니다. 컨트롤 패턴은 UI 자동화 클라이언트에서 사용할 수 있는 경우 지원되는 것으로 간주됩니다. 예를 들어 여러 줄 편집 상자를 사용하면 볼 수 있는 영역에 표시할 수 있는 것보다 많은 텍스트 줄이 포함된 경우에만 세로 스크롤을 사용할 수 있습니다. 스크롤이 더 이상 필요하지 않도록 충분한 텍스트가 제거되면 스크롤이 비활성화됩니다. 이 예제에서 ScrollPattern 컨트롤 패턴은 컨트롤의 현재 상태(편집 상자에 있는 텍스트 양)에 따라 동적으로 지원됩니다.
컨트롤 패턴 클래스 및 인터페이스
다음 표에서는 UI 자동화 컨트롤 패턴에 대해 설명합니다. 또한 UI 자동화 클라이언트에서 컨트롤 패턴에 액세스하는 데 사용하는 클래스와 UI 자동화 공급자가 이를 구현하는 데 사용하는 인터페이스도 나열되어 있습니다.
컨트롤 패턴 클래스 | 공급자 인터페이스 | 설명 |
---|---|---|
DockPattern | IDockProvider | 도킹 컨테이너에 도킹할 수 있는 컨트롤에 사용됩니다. 예를 들어 도구 모음이나 도구 팔레트. |
ExpandCollapsePattern | IExpandCollapseProvider | 확장하거나 축소할 수 있는 컨트롤에 사용됩니다. 예를 들어 파일 메뉴와 같은 애플리케이션의 메뉴 항목입니다. |
GridPattern | IGridProvider | 크기 조정 및 지정된 셀로 이동과 같은 그리드 기능을 지원하는 컨트롤에 사용됩니다. 예를 들어 Windows 탐색기의 큰 아이콘 보기 또는 Microsoft Word의 머리글이 없는 간단한 테이블이 있습니다. |
GridItemPattern | IGridItemProvider | 그리드 내 셀이 있는 컨트롤에 사용됩니다. 개별 셀은 GridItem 패턴을 지원해야 합니다. 예를 들어 Microsoft Windows 탐색기 세부 정보 보기의 각 셀입니다. |
InvokePattern | IInvokeProvider | 단추와 같이 호출할 수 있는 컨트롤에 사용됩니다. |
MultipleViewPattern | IMultipleViewProvider | 동일한 정보, 데이터 또는 자식 집합의 여러 표현 간에 전환할 수 있는 컨트롤에 사용됩니다. 예를 들어 썸네일, 타일, 아이콘, 목록 또는 세부 정보 보기에서 데이터를 사용할 수 있는 목록 보기 컨트롤입니다. |
RangeValuePattern | IRangeValueProvider | 컨트롤에 적용할 수 있는 값 범위가 있는 컨트롤에 사용됩니다. 예를 들어 연도를 포함하는 스피너 컨트롤의 범위는 1900~2010년일 수 있지만, 월을 제시하는 다른 스피너 컨트롤의 범위는 1~12입니다. |
ScrollPattern | IScrollProvider | 스크롤할 수 있는 컨트롤에 사용됩니다. 예를 들어 컨트롤의 볼 수 있는 영역에 표시할 수 있는 것보다 많은 정보가 있을 때 활성 상태인 스크롤 막대가 있는 컨트롤입니다. |
ScrollItemPattern | IScrollItemProvider | 스크롤되는 목록에 개별 항목이 있는 컨트롤에 사용됩니다. 예를 들어 콤보 상자 컨트롤과 같이 스크롤 목록에 개별 항목이 있는 목록 컨트롤입니다. |
SelectionPattern | ISelectionProvider | 선택 컨테이너 컨트롤에 사용됩니다. 예를 들어 목록 상자와 콤보 상자. |
SelectionItemPattern | ISelectionItemProvider | 목록 상자 및 콤보 상자와 같은 선택 컨테이너 컨트롤의 개별 항목에 사용됩니다. |
TablePattern | ITableProvider | 그리드뿐만 아니라 머리글 정보를 포함한 컨트롤에 사용됩니다. 예를 들어 Microsoft Excel 워크시트입니다. |
TableItemPattern | ITableItemProvider | 테이블의 항목에 사용됩니다. |
TextPattern | ITextProvider | 텍스트 정보를 노출하는 편집 컨트롤 및 문서에 사용됩니다. |
TogglePattern | IToggleProvider | 상태를 전환할 수 있는 컨트롤에 사용됩니다. 예를 들어 확인란 및 확인 가능한 메뉴 항목이 있습니다. |
TransformPattern | ITransformProvider | 크기 조정, 이동 및 회전할 수 있는 컨트롤에 사용됩니다. 변환 컨트롤 패턴의 일반적인 용도는 디자이너, 양식, 그래픽 편집기 및 그리기 애플리케이션입니다. |
ValuePattern | IValueProvider | 클라이언트가 값 범위를 지원하지 않는 컨트롤에서 값을 얻거나 설정할 수 있습니다. 예를 들어 날짜 시간 선택기입니다. |
WindowPattern | IWindowProvider | Microsoft Windows 운영 체제의 기본 개념인 Windows 관련 정보를 노출합니다. 창인 컨트롤의 예로는 최상위 응용 프로그램 창(Microsoft Word, Microsoft Windows 탐색기 등), MDI(다중 문서 인터페이스) 자식 창 및 대화 상자가 있습니다. |