다음을 통해 공유


UI 자동화 컨트롤 패턴 개요

참고참고

이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오.

이 개요에서는 Microsoft UI Automation 컨트롤 패턴을 소개합니다. 컨트롤 패턴을 사용하면 컨트롤 형식이나 컨트롤 모양에 독립적으로 컨트롤의 기능을 분류하고 노출할 수 있습니다.

UI Automation는 컨트롤 패턴을 사용하여 많이 사용되는 컨트롤 동작을 나타냅니다. 예를 들어 단추와 같이 호출 가능한 컨트롤에는 Invoke 컨트롤 패턴을 사용하고, 목록 상자, 목록 뷰 또는 콤보 상자와 같이 스크롤 막대가 있는 컨트롤에는 Scroll 컨트롤 패턴을 사용합니다. 각 컨트롤 패턴은 서로 다른 기능을 나타내므로 이들을 결합하여 특정 컨트롤이 지원하는 전체 기능 집합을 정의할 수 있습니다.

참고참고

부모가 노출하는 기능에 대한 user interface (UI)를 제공하는 자식 컨트롤로 만들어진 집계 컨트롤은 일반적으로 각 자식 컨트롤과 연결된 모든 컨트롤 패턴을 구현해야 하지만,자식 컨트롤이 이러한 컨트롤 패턴을 구현할 필요는 없습니다.

 

이 항목에는 다음 단원이 포함되어 있습니다.

  • UI 자동화 컨트롤 패턴 구성 요소
  • UI 자동화 공급자 및 클라이언트
  • 동적 컨트롤 패턴
  • 컨트롤 패턴 클래스 및 인터페이스
  • 관련 항목

 

UI 자동화 컨트롤 패턴 구성 요소

컨트롤 패턴은 컨트롤에서 사용할 수 있는 독립적인 기능을 정의하는 데 필요한 메서드, 속성, 이벤트 및 관계를 지원합니다.

  • UI 자동화 요소와 해당 부모, 자식 및 형제 사이의 관계는 UI Automation 트리 내에서 요소의 구조를 정의합니다.

  • UI 자동화 클라이언트에서 메서드를 통해 컨트롤을 조작할 수 있습니다.

  • 속성과 이벤트는 컨트롤의 상태에 대한 정보와 컨트롤 패턴의 기능에 대한 정보를 제공합니다.

인터페이스가 Component Object Model (COM) 개체에 연결되는 것처럼 컨트롤 패턴은 UI에 연결됩니다. COM에서는 개체를 쿼리하여 개체에서 지원하는 인터페이스를 확인한 다음 이 인터페이스를 사용하여 기능에 액세스할 수 있습니다. UI Automation에서 UI 자동화 클라이언트를 컨트롤에 쿼리하여 이 컨트롤이 지원하는 컨트롤 패턴을 확인한 다음 지원되는 컨트롤 패턴이 노출하는 속성, 메서드, 이벤트 및 구조를 통해 컨트롤과 상호 작용합니다. 예를 들어, 여러 줄 편집 상자의 경우 UI 자동화 공급자는 IScrollProvider를 구현합니다. AutomationElementScrollPattern 컨트롤 패턴을 지원함을 클라이언트에서 확인하면 이 컨트롤 패턴이 노출하는 속성, 메서드 및 이벤트를 사용하여 컨트롤을 조작하거나 컨트롤에 대한 정보에 액세스할 수 있습니다.

UI 자동화 공급자 및 클라이언트

UI 자동화 공급자는 컨트롤 패턴을 구현하여 컨트롤이 지원하는 특정 기능에 대한 적절한 동작을 노출합니다.

UI 자동화 클라이언트는 UI Automation 컨트롤 패턴 클래스의 메서드와 속성에 액세스하고 이를 사용하여 UI에 대한 정보를 얻거나 UI를 조작합니다. 이러한 컨트롤 패턴 클래스는 System.Windows.Automation 네임스페이스에 있습니다(예: InvokePatternSelectionPattern).

클라이언트는 AutomationElement 메서드(예: AutomationElement.GetCurrentPropertyValue 또는 AutomationElement.GetCachedPropertyValue)나 common language runtime (CLR) 접근자를 사용하여 패턴의 UI Automation 속성에 액세스합니다. 각 컨트롤 패턴 클래스에는 해당 컨트롤 패턴을 식별하며 GetCachedPattern 또는 GetCurrentPattern에 매개 변수로 전달하여 AutomationElement에 대한 해당 패턴을 검색할 수 있는 필드 멤버(예: InvokePattern.Pattern  또는 SelectionPattern.Pattern)가 있습니다.

동적 컨트롤 패턴

일부 컨트롤의 경우 현재 상태에 따라 동일한 컨트롤 패턴을 지원하지 않을 수도 있습니다. 컨트롤 패턴은 UI 자동화 클라이언트를 사용할 수 있을 때 지원되는 것으로 간주됩니다. 예를 들어 여러 줄 편집 상자의 경우 표시 가능한 영역에 나타낼 수 있는 것보다 텍스트 줄이 많을 경우에만 세로 스크롤이 활성화됩니다. 텍스트를 충분히 제거하여 더 이상 스크롤이 필요 없으면 스크롤이 비활성화됩니다. 이 예에서 ScrollPattern 컨트롤 패턴은 컨트롤의 현재 상태, 즉 편집 상자에 있는 텍스트의 양에 따라 동적으로 지원됩니다.

컨트롤 패턴 클래스 및 인터페이스

다음 표에서는 UI Automation 컨트롤 패턴을 설명합니다. 이 표에서는 컨트롤 패턴에 액세스하기 위해 UI 자동화 클라이언트에 사용되는 클래스 및 이를 구현하기 위해 UI 자동화 공급자에 사용되는 인터페이스도 보여 줍니다.

컨트롤 패턴 클래스

공급자 인터페이스

설명

DockPattern

IDockProvider

도킹 컨테이너에 도킹할 수 있는 컨트롤에 사용됩니다. 예: 도구 모음 또는 도구 팔레트

ExpandCollapsePattern

IExpandCollapseProvider

확장하거나 축소할 수 있는 컨트롤에 사용됩니다. 예: 파일 메뉴와 같은 응용 프로그램의 메뉴 항목

GridPattern

IGridProvider

특정 셀로 이동 및 크기 조정 같은 표 기능을 지원하는 컨트롤에 사용됩니다. 예: Windows 탐색기의 큰 아이콘 보기 또는 Microsoft Word의 머리글 없는 간단한 표

GridItemPattern

IGridItemProvider

표 안에 셀이 있는 컨트롤에 사용됩니다. 개별 셀이 GridItem 패턴을 지원해야 합니다. 예: Microsoft Windows Explorer 자세히 보기의 각 셀

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

크기를 조정하고, 이동하고, 회전할 수 있는 컨트롤에 사용됩니다. Transform 컨트롤 패턴은 일반적으로 디자이너, 폼, 그래픽 편집기 및 그리기 응용 프로그램에 사용됩니다.

ValuePattern

IValueProvider

값 범위를 지원하지 않는 컨트롤에서 클라이언트가 값을 가져오거나 설정할 수 있습니다. 예: 날짜 시간 선택 컨트롤

WindowPattern

IWindowProvider

Microsoft Windows 운영 체제에 대한 기본 개념인 창에 관련된 정보를 노출합니다. 예: 최상위 응용 프로그램 창(Microsoft Word, Microsoft Windows Explorer 등), multiple-document interface (MDI) 자식 창 및 대화 상자

참고 항목

개념

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

UI 자동화 클라이언트에 대한 컨트롤 패턴 매핑

UI 자동화 개요

클라이언트의 UI 자동화 속성

클라이언트용 UI 자동화 이벤트