다음을 통해 공유


UI 자동화 Invoke 컨트롤 패턴 구현

참고참고

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

이 항목에서는 이벤트 및 속성에 대한 정보를 포함하여 IInvokeProvider 구현에 대한 지침 및 규칙을 소개합니다. 추가 참조에 대한 링크는 항목 끝 부분에 나와 있습니다.

InvokePattern 컨트롤 패턴은 활성화될 때 상태를 유지하지 않지만 하나의 명확한 작업을 시작하거나 수행하는 컨트롤을 지원하는 용도로 사용됩니다. 확인란 및 라디오 단추처럼 상태가 유지되지 않는 컨트롤은 각각 IToggleProviderISelectionItemProvider를 구현해야 합니다. Invoke 컨트롤 패턴을 구현하는 컨트롤 예제를 보려면 UI 자동화 클라이언트에 대한 컨트롤 패턴 매핑을 참조하십시오.

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

  • 구현 지침 및 규칙
  • IInvokeProvider의 필수 멤버
  • 예외
  • 관련 항목

구현 지침 및 규칙

Invoke 컨트롤 패턴을 구현하는 경우 다음 지침 및 규칙을 따르십시오.

  • 다른 컨트롤 패턴 공급자를 통해 같은 동작이 노출되지 않는 경우 컨트롤에서는 IInvokeProvider를 구현합니다. 예를 들어 컨트롤의 Invoke 메서드에서 Expand 또는 Collapse 메서드와 동일한 작업을 수행하는 경우에는 컨트롤에서 IInvokeProvider를 구현하지 말아야 합니다.

  • 컨트롤 호출은 일반적으로 클릭이나 두 번 클릭 또는 Enter 키, 미리 정의된 바로 가기 키, 다른 키 조합을 누르는 방법으로 수행합니다.

  • InvokedEvent는 연결된 작업을 수행하는 컨트롤에 대한 응답으로, 활성화된 컨트롤에서 발생합니다. 가능하면 컨트롤에서 작업을 완료하고 블로킹 없이 반환된 후에 이벤트가 발생해야 합니다. Invoked 이벤트는 다음 시나리오에서 Invoke 요청에 응답하기 전에 발생해야 합니다.

    • 작업이 완료될 때까지 대기할 수 없거나 대기하는 것이 효율적이지 않은 경우

    • 작업에 사용자가 개입해야 하는 경우

    • 작업에 시간이 오래 걸려 호출하는 클라이언트가 상당한 시간 동안 블로킹되는 경우

  • 컨트롤 호출에 파생 효과가 있는 경우 해당 파생 효과는 HelpText 속성을 통해 노출되어야 합니다. 예를 들어 Invoke가 선택 항목과 연결되어 있지 않아도 Invoke로 인해 다른 컨트롤이 선택될 수 있습니다.

  • 호버(또는 항목 위로 마우스 이동) 효과는 일반적으로 Invoked 이벤트를 발생시키지 않습니다. 하지만 호버 상태에 따라 작업을 수행하는(시각 효과 발생과 반대로) 컨트롤은 InvokePattern 컨트롤 패턴을 지원해야 합니다.

참고참고

마우스 관련 파생 효과의 결과로만 컨트롤을 호출할 수 있는 경우에는 이 구현을 통해 내게 필요한 옵션 문제가 발생할 수 있습니다.

  • 컨트롤 호출과 항목 선택은 서로 다릅니다. 하지만 컨트롤에 따라서는, 컨트롤을 호출할 때 파생 효과로 항목이 선택될 수 있습니다. 예를 들어 내 문서 폴더에서 Microsoft Word 문서 목록 항목을 호출하면 항목이 선택되는 동시에 문서도 열립니다.

  • 요소는 호출된 즉시 UI Automation 트리에서 사라질 수 있습니다. 그 결과 이벤트 콜백으로 제공된 요소에서 정보를 요청하는 작업이 실패할 수 있습니다. 이를 해결하려면 캐시된 정보를 미리 페치하는 것이 좋습니다.

  • 컨트롤은 여러 컨트롤 패턴을 구현할 수 있습니다. 예를 들어, Microsoft Excel 도구 모음의 채우기 색 컨트롤은 InvokePatternExpandCollapsePattern 컨트롤 패턴을 모두 구현합니다. ExpandCollapsePattern은 메뉴를 노출하고 InvokePattern은 활성 선택 영역을 선택한 색으로 채웁니다.

IInvokeProvider의 필수 멤버

IInvokeProvider 구현에 필요한 속성 및 메서드는 다음과 같습니다.

필수 멤버

멤버 형식

참고

Invoke

메서드

Invoke는 비동기 호출이므로 실행을 차단하지 않고 즉시 반환해야 합니다.

이 동작은 호출 시 직접 또는 간접적으로 모달 대화 상자를 시작하는 컨트롤에서 특히 중요합니다. 이벤트를 발생시킨 모든 UI 자동화 클라이언트는 모달 대화 상자가 닫힐 때까지 블로킹된 상태로 유지됩니다.

예외

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

예외 형식

조건

ElementNotEnabledException

컨트롤을 사용할 수 없는 경우

참고 항목

작업

UI 자동화 공급자의 컨트롤 패턴 지원

UI 자동화를 사용하여 컨트롤 호출

UI 자동화의 캐싱 사용

개념

UI 자동화 컨트롤 패턴 개요

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

UI 자동화 트리 개요