다음을 통해 공유


UI 자동화 확장/축소 컨트롤 패턴 구현

비고

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

이 항목에서는 속성, 메서드 및 이벤트에 대한 정보를 포함하여 IExpandCollapseProvider구현하기 위한 지침과 규칙을 소개합니다. 추가 참조에 대한 링크는 개요의 끝에 나열됩니다.

ExpandCollapsePattern 컨트롤 패턴은 시각적으로 확장되어 더 많은 콘텐츠를 표시하고 축소하여 콘텐츠를 숨기는 컨트롤을 지원하는 데 사용됩니다. 이 컨트롤 패턴을 구현하는 컨트롤의 예제는 UI 자동화 클라이언트 대한컨트롤 패턴 매핑을 참조하세요.

구현 지침 및 규칙

ExpandCollapse 컨트롤 패턴을 구현하는 경우 다음 지침 및 규칙을 확인합니다.

  • 집계 컨트롤—UI에 확장/축소 기능을 제공하는 자식 개체로 구성됨—은 ExpandCollapsePattern 컨트롤 패턴을 지원해야 하며, 자식 요소는 지원하지 않아도 됩니다. 예를 들어, 콤보 상자 컨트롤은 목록 상자, 단추 및 편집 컨트롤의 조합으로 구성되지만, ExpandCollapsePattern를 지원해야 하는 것은 오직 부모 콤보 상자뿐입니다.

    비고

    개별 MenuItem 개체의 집계인 메뉴 컨트롤은 예외입니다. MenuItem 개체는 ExpandCollapsePattern 컨트롤 패턴을 지원할 수 있지만, 부모 Menu 컨트롤은 지원할 수 없습니다. 트리 및 트리 항목 컨트롤에 유사한 예외가 적용됩니다.

  • 컨트롤이 ExpandCollapseState 설정된 경우 모든 LeafNode 기능은 현재 컨트롤에 대해 비활성 상태이며 이 컨트롤 패턴을 사용하여 가져올 수 있는 유일한 정보는 다음과 같습니다ExpandCollapsePatternExpandCollapseState. 이후에 자식 개체가 추가되면 ExpandCollapseState 변경되고 ExpandCollapsePattern 기능이 활성화됩니다.

  • ExpandCollapseState 는 직접 자식 개체의 표시 유형만을 나타냅니다. 모든 하위 개체의 표시 유형을 참조하지는 않습니다.

  • 확장 및 축소 기능은 컨트롤에 따라 다릅니다. 다음은 이 동작의 예입니다.

    • Office 개인 메뉴는 MenuItem(Expanded, CollapsedPartiallyExpanded)로서, Expand 또는 Collapse가 호출될 때 채택할 상태를 지정할 수 있는 삼중 상태일 수 있습니다.

    • TreeItem에서 Expand를 호출할 때 모든 하위 항목 또는 직접 자식만 표시될 수 있습니다.

    • 컨트롤에서 Expand 또는 Collapse을 호출하여 하위 항목의 상태를 유지하는 경우 상태 변경 이벤트를 보내는 것이 아니라 가시성 변경 이벤트를 보내야 합니다. 부모 컨트롤이 축소될 때 하위 항목의 상태를 유지하지 않는 경우, 컨트롤은 더 이상 표시되지 않는 모든 하위 항목을 삭제하고 소멸된 이벤트를 발생시키거나 각 하위 항목의 ExpandCollapseState을(를) 변경하고 가시성 변경 이벤트를 발생시켜야 합니다.

  • 탐색을 보장하려면 부모 ExpandCollapseState에 관계없이 개체가 UI 자동화 트리(적절한 표시 상태)에 있는 것이 좋습니다. 요청 시 하위 항목이 생성되는 경우 처음 또는 표시되는 동안에만 UI 자동화 트리에 표시될 수 있습니다.

IExpandCollapseProvider에 필요한 멤버

구현 IExpandCollapseProvider하려면 다음 속성과 메서드가 필요합니다.

필수 멤버 멤버 형식 비고
ExpandCollapseState 재산 없음
Expand 메서드 없음
Collapse 메서드 없음
AutomationPropertyChangedEventHandler 이벤트 이 컨트롤에는 연결된 이벤트가 없습니다. 이 제네릭 대리자를 사용합니다.

예외

공급자는 다음 예외를 반드시 throw해야 합니다.

예외 유형 조건
InvalidOperationException Expand 또는 CollapseExpandCollapseState = LeafNode 시에 호출됩니다.

참고하십시오