UI 자동화 컨트롤 패턴 개요UI Automation Control Patterns Overview

참고

이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다.This documentation is intended for .NET Framework developers who want to use the managed UI 자동화UI Automation classes defined in the System.Windows.Automation namespace. 에 대 한 UI 자동화UI Automation 최신 정보는 Windows Automation API: UI 자동화.For the latest information about UI 자동화UI Automation, see Windows Automation API: UI Automation.

이 개요에서는 Microsoft UI 자동화Microsoft UI Automation 컨트롤 패턴을 소개합니다.This overview introduces Microsoft UI 자동화Microsoft UI Automation control patterns. 컨트롤 패턴은 컨트롤 형식 및 컨트롤의 모양에 관계없이 컨트롤의 기능을 분류하고 노출하는 방법을 제공합니다.Control patterns provide a way to categorize and expose a control's functionality independent of the control type or the appearance of the control.

UI 자동화UI Automation 은 컨트롤 패턴을 사용하여 공통된 컨트롤 동작을 나타냅니다.uses control patterns to represent common control behaviors. 예를 들어, 호출할 수 있는 컨트롤(예: 단추)에 대해 Invoke 컨트롤 패턴을 사용하고 스크롤 막대가 있는 컨트롤(예: 목록 상자, 목록 뷰 또는 콤보 상자)에 대해 Scroll 컨트롤 패턴을 사용합니다.For example, you use the Invoke control pattern for controls that can be invoked (such as buttons) and the Scroll control pattern for controls that have scroll bars (such as list boxes, list views, or combo boxes). 각 컨트롤 패턴은 별도 기능을 나타내므로 컨트롤 패턴을 조합하여 특정 컨트롤에서 지원하는 기능의 전체 집합을 설명할 수 있습니다.Because each control pattern represents a separate functionality, they can be combined to describe the full set of functionality supported by a particular control.

참고

부모 컨트롤이 노출한 기능에 대한 UI(사용자 인터페이스)user interface (UI) 를 제공하는 하위 컨트롤을 사용하여 빌드된 집계 컨트롤은 각 하위 컨트롤과 정상적으로 연결된 모든 컨트롤 패턴을 구현해야 합니다.Aggregate controls—built with child controls that provide the UI(사용자 인터페이스)user interface (UI) for functionality exposed by the parent—should implement all control patterns normally associated with each child control. 따라서 이러한 동일한 컨트롤 패턴을 하위 컨트롤이 구현할 필요가 없습니다.In turn, those same control patterns are not required to be implemented by the child controls.

UI 자동화 컨트롤 패턴 구성 요소UI Automation Control Pattern Components

컨트롤 패턴은 컨트롤에 있는 개별 기능 항목을 정의하는 데 필요한 메서드, 속성, 이벤트 및 관계를 지원합니다.Control patterns support the methods, properties, events, and relationships needed to define a discrete piece of functionality available in a control.

  • UI 자동화 요소와 부모, 자식, 형제 간의 관계는 UI 자동화UI Automation 트리 내에서 해당 요소의 구조를 설명합니다.The relationship between a UI Automation element and its parent, children and siblings describes the element's structure within the UI 자동화UI Automation tree.

  • 메서드는 UI 자동화 클라이언트가 컨트롤을 조작할 수 있도록 합니다.The methods allow UI Automation clients to manipulate the control.

  • 속성 및 이벤트는 컨트롤 상태에 대한 정보뿐만 아니라 컨트롤 패턴의 기능에 대한 정보를 제공합니다.The properties and events provide information about the control pattern's functionality as well as information about the state of the control.

인터페이스 UIUI 는 COM (구성 요소 개체 모델) 개체와 관련이 있으므로 컨트롤 패턴은와 관련 됩니다.Control patterns relate to UIUI as interfaces relate to Component Object Model (COM) objects. COM에서 개체를 쿼리하여 개체에서 지 원하는 인터페이스를 확인 한 다음 이러한 인터페이스를 사용 하 여 기능에 액세스할 수 있습니다.In COM, you can query an object to ask what interfaces it supports and then use those interfaces to access functionality. UI 자동화UI Automation에서, UI 자동화 클라이언트는 컨트롤이 지원하는 컨트롤 패턴을 확인하고 지원되는 컨트롤 패턴이 노출하는 속성, 메서드, 이벤트 및 구조를 통해 컨트롤과 상호 작용할 수 있습니다.In UI 자동화UI Automation, UI Automation clients can ask a control which control patterns it supports and then interact with the control through the properties, methods, events, and structures exposed by the supported control patterns. 예를 들어, 여러 줄 편집 상자에 대해 UI 자동화는 IScrollProvider를 구현합니다.For example, for a multiline edit box, UI Automation providers implement IScrollProvider. 클라이언트가 AutomationElementScrollPattern 컨트롤 패턴을 지원한다는 사실을 알고 있으면 클라이언트는 해당 컨트롤 패턴이 노출하는 속성, 메서드 및 이벤트를 사용하여 컨트롤을 조작하거나 컨트롤에 대한 정보에 액세스할 수 있습니다.When a client knows that an AutomationElement supports the ScrollPattern control pattern, it can use the properties, methods, and events exposed by that control pattern to manipulate the control, or access information about the control.

UI 자동화 공급자 및 클라이언트UI Automation Providers and Clients

UI 자동화 공급자는 컨트롤에서 지원하는 특정 기능에 대해 적절한 동작을 노출하는 컨트롤 패턴을 구현합니다.UI Automation providers implement control patterns to expose the appropriate behavior for a specific piece of functionality supported by the control.

UI 자동화 클라이언트는 UI 자동화UI Automation 컨트롤 패턴 클래스의 메서드 및 속성에 액세스하고 이를 사용하여 UIUI에 대한 정보를 가져오거나 UIUI를 조작합니다.UI Automation clients access methods and properties of UI 자동화UI Automation control pattern classes and use them to get information about the UIUI, or to manipulate the UIUI. 이러한 컨트롤 패턴 클래스는 System.Windows.Automation 네임스페이스(예: InvokePatternSelectionPattern)에서 볼 수 있습니다.These control pattern classes are found in the System.Windows.Automation namespace (for example, InvokePattern and SelectionPattern).

클라이언트는 AutomationElement 메서드 ( AutomationElement.GetCurrentPropertyValue 예: 또는 AutomationElement.GetCachedPropertyValue) 또는 CLR (공용 언어 UI 자동화UI Automation 런타임) 접근자를 사용 하 여 패턴의 속성에 액세스 합니다.Clients use AutomationElement methods (such as AutomationElement.GetCurrentPropertyValue or AutomationElement.GetCachedPropertyValue) or the common language runtime (CLR) accessors to access the UI 자동화UI Automation properties on a pattern. 각 컨트롤 패턴 클래스에는 컨트롤 패턴을 식별 하 고 InvokePattern.PatternSelectionPattern.PatternGetCachedPattern 대 한 매개 변수로 전달 하거나 GetCurrentPatternAutomationElement해당 패턴을 검색할 수 있는 필드 멤버 (예: 또는)가 있습니다.Each control pattern class has a field member (for example, InvokePattern.Pattern or SelectionPattern.Pattern) that identifies that control pattern and can be passed as a parameter to GetCachedPattern or GetCurrentPattern to retrieve that pattern for an AutomationElement.

동적 컨트롤 패턴Dynamic Control Patterns

일부 컨트롤에서는 동일한 컨트롤 패턴의 집합이 항상 지원되지는 않습니다.Some controls do not always support the same set of control patterns. 컨트롤 패턴은 UI 자동화 클라이언트에 사용할 수 있을 때 지원되는 것으로 간주됩니다.Control patterns are considered supported when they are available to a UI Automation client. 예를 들어, 여러 줄 편집 상자를 사용하면 볼 수 있는 영역에 표시할 수 있는 것보다 많은 텍스트 줄이 포함되어 있는 경우에만 세로로 스크롤할 수 있습니다.For example, a multiline edit box enables vertical scrolling only when it contains more lines of text than can be displayed in its viewable area. 스크롤이 더 이상 필요하지 않을만큼 충분한 양의 텍스트가 제거되면 스크롤이 비활성화됩니다.Scrolling is disabled when enough text is removed so that scrolling is no longer required. 이 예제에서, ScrollPattern 컨트롤 패턴은 컨트롤의 현재 상태(편집 상자에 있는 텍스트의 양)에 따라 동적으로 지원됩니다.For this example, the ScrollPattern control pattern is dynamically supported depending on the current state of the control (how much text is in the edit box).

컨트롤 패턴 클래스 및 인터페이스Control Pattern Classes and Interfaces

다음 표에서는 UI 자동화UI Automation 컨트롤 패턴에 대해 설명합니다.The following table describes the UI 자동화UI Automation control patterns. 또한 UI 자동화 클라이언트가 컨트롤 패턴에 액세스하는 데 사용하는 클래스와, UI 자동화 공급자가 이러한 컨트롤 패턴을 구현하는 데 사용하는 인터페이스를 나열하여 보여줍니다.The table also lists the classes used by UI Automation clients to access the control patterns, as well as the interfaces used by UI Automation providers to implement them.

컨트롤 패턴 클래스Control Pattern Class 공급자 인터페이스Provider Interface 설명Description
DockPattern IDockProvider 도킹 컨테이너에서 도킹될 수 있는 컨트롤에 사용됩니다.Used for controls that can be docked in a docking container. 예를 들면, 도구 모음 또는 도구 팔레트입니다.For example, toolbars or tool palettes.
ExpandCollapsePattern IExpandCollapseProvider 확장하거나 축소할 수 있는 컨트롤에 사용됩니다.Used for controls that can be expanded or collapsed. 예를 들면, 파일 메뉴와 같은 애플리케이션의 메뉴 항목입니다.For example, menu items in an application such as the File menu.
GridPattern IGridProvider 지정된 셀로 이동 및 크기 조정과 같은 표 기능을 지원하는 컨트롤에 사용됩니다.Used for controls that support grid functionality such as sizing and moving to a specified cell. 예를 들면, Windows 탐색기의 큰 아이콘 보기 또는 Microsoft WordMicrosoft Word의 헤더 없는 단순 테이블입니다.For example, the large icon view in Windows Explorer or simple tables without headers in Microsoft WordMicrosoft Word.
GridItemPattern IGridItemProvider 표 내에서 셀이 있는 컨트롤에 사용됩니다.Used for controls that have cells within grids. 개별 셀은 GridItem 패턴을 지원해야 합니다.The individual cells should support the GridItem pattern. 예를 들면, Microsoft Windows 탐색기Microsoft Windows Explorer 자세히 보기의 각 셀입니다.For example, each cell in Microsoft Windows 탐색기Microsoft Windows Explorer detail view.
InvokePattern IInvokeProvider 호출할 수 있는 컨트롤(예: 단추)에 사용됩니다.Used for controls that can be invoked, such as a button.
MultipleViewPattern IMultipleViewProvider 동일한 정보, 데이터 또는 자식 항목 집합의 여러 표현 간을 전환할 수 있는 컨트롤에 사용됩니다.Used for controls that can switch between multiple representations of the same set of information, data, or children. 예를 들면, 데이터를 축소판, 타일, 아이콘, 목록 또는 자세히 보기로 사용할 수 있는 목록 뷰 컨트롤입니다.For example, a list view control where data is available in thumbnail, tile, icon, list, or detail views.
RangeValuePattern IRangeValueProvider 컨트롤에 적용할 수 있는 값의 범위가 있는 컨트롤에 사용됩니다.Used for controls that have a range of values that can be applied to the control. 예를 들어, 연도를 나타내는 회전자 컨트롤의 범위는 1900 ~ 2010이고 월을 나타내는 다른 회전자 컨트롤의 범위는 1 ~ 12입니다.For example, a spinner control containing years might have a range of 1900 to 2010, while another spinner control presenting months would have a range of 1 to 12.
ScrollPattern IScrollProvider 스크롤할 수 있는 컨트롤에 사용됩니다.Used for controls that can scroll. 예를 들면, 컨트롤의 볼 수 있는 영역에 표시될 수 있는 것보다 많은 정보가 있는 경우 활성 상태의 스크롤 막대가 있는 컨트롤입니다.For example, a control that has scroll bars that are active when there is more information than can be displayed in the viewable area of the control.
ScrollItemPattern IScrollItemProvider 스크롤하는 목록의 개별 항목이 포함된 컨트롤에 사용됩니다.Used for controls that have individual items in a list that scrolls. 예를 들면, 스크롤 목록의 개별 항목을 가진 목록 컨트롤(예: 콤보 상자 컨트롤)입니다.For example, a list control that has individual items in the scroll list, such as a combo box control.
SelectionPattern ISelectionProvider 선택 컨테이너 컨트롤에 사용됩니다.Used for selection container controls. 예를 들면, 목록 상자 및 콤보 상자입니다.For example, list boxes and combo boxes.
SelectionItemPattern ISelectionItemProvider 목록 상자 및 콤보 상자와 같은 선택 컨테이너 컨트롤의 개별 항목에 사용됩니다.Used for individual items in selection container controls, such as list boxes and combo boxes.
TablePattern ITableProvider 헤더 정보 및 표가 있는 컨트롤에 사용됩니다.Used for controls that have a grid as well as header information. 예를 들면, Microsoft ExcelMicrosoft Excel 워크시트입니다.For example, Microsoft ExcelMicrosoft Excel worksheets.
TableItemPattern ITableItemProvider 테이블의 항목에 사용됩니다.Used for items in a table.
TextPattern ITextProvider 편집 컨트롤 및 텍스트 정보를 노출하는 문서에 사용됩니다.Used for edit controls and documents that expose textual information.
TogglePattern IToggleProvider 상태를 전환할 수 있는 컨트롤에 사용됩니다.Used for controls where the state can be toggled. 예를 들면, 확인란 및 선택 가능한 메뉴 항목입니다.For example, check boxes and checkable menu items.
TransformPattern ITransformProvider 크기 조정, 이동 및 회전할 수 있는 컨트롤에 사용됩니다.Used for controls that can be resized, moved, and rotated. Transform 컨트롤 패턴은 디자이너, 폼, 그래픽 편집기 및 그리기 애플리케이션에서 일반적으로 사용됩니다.Typical uses for the Transform control pattern are in designers, forms, graphical editors, and drawing applications.
ValuePattern IValueProvider 클라이언트가 값 범위를 지원하지 않는 컨트롤에 값을 설정하거나 가져올 수 있습니다.Allows clients to get or set a value on controls that do not support a range of values. 예를 들면, 날짜 시간 선택입니다.For example, a date time picker.
WindowPattern IWindowProvider 창과 관련된 정보, 기초적인 개념을 Microsoft WindowsMicrosoft Windows 운영 체제에 노출합니다.Exposes information specific to windows, a fundamental concept to the Microsoft WindowsMicrosoft Windows operating system. Windows 컨트롤의 예로는 최상위 응용 프로그램 창 (Microsoft WordMicrosoft Word, Microsoft Windows 탐색기Microsoft Windows Explorer등), MDI (다중 문서 인터페이스) 자식 창 및 대화 상자가 있습니다.Examples of controls that are windows are top-level application windows (Microsoft WordMicrosoft Word, Microsoft Windows 탐색기Microsoft Windows Explorer, and so on), multiple-document interface (MDI) child windows, and dialogs.

참고자료See also