UI 자동화 Scroll 컨트롤 패턴 구현
참고 항목
이 설명서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI 자동화 클래스를 사용하려는 .NET Framework 개발자를 위한 것입니다. UI 자동화에 대한 최신 정보는 Windows 자동화 API: UI 자동화를 참조하세요.
이 문서에서는 이벤트 및 속성에 대한 정보를 포함하여 IScrollProvider를 구현하기 위한 지침 및 규칙을 제공합니다. 추가 참조에 대한 링크는 항목 끝에 나열되어 있습니다.
ScrollPattern 컨트롤 패턴은 자식 개체의 컬렉션에 대해 스크롤할 수 있는 컨테이너 역할을 하는 컨트롤을 지원하는 데 사용됩니다. 이 컨트롤은 스크롤 기능을 지원하기 위해 스크롤 막대를 사용할 필요는 없지만 일반적으로는 스크롤 막대를 사용합니다.
스크롤 막대를 사용하지 않는 스크롤 컨트롤의 예제
이 컨트롤을 구현하는 컨트롤의 예제를 보려면 Control Pattern Mapping for UI Automation Clients을 참조하세요.
구현 지침 및 규칙
Scroll 컨트롤 패턴을 구현할 때는 다음 지침 및 규칙에 유의하세요.
이 컨트롤의 자식 항목은 IScrollItemProvider를 구현해야 합니다.
컨테이너 컨트롤의 스크롤 막대는 ScrollPattern 컨트롤 패턴을 지원하지 않습니다. 이 스크롤 막대는 RangeValuePattern 컨트롤 패턴을 지원해야 합니다.
스크롤이 백분율로 측정되면, 스크롤 눈금과 관련된 모든 값 또는 양은 0에서 100까지의 범위로 정규화되어야 합니다.
HorizontallyScrollableProperty 및 VerticallyScrollableProperty 는 IsEnabledProperty와 관계가 없습니다.
HorizontallyScrollableProperty =
false
일 경우 HorizontalViewSizeProperty는 100%로 설정되어야 하며 HorizontalScrollPercentProperty는 NoScroll로 설정되어야 합니다. 마찬가지로, VerticallyScrollableProperty =false
일 경우 VerticalViewSizeProperty 는 100%로 설정되어야 하며 VerticalScrollPercentProperty 는 NoScroll를 참조하세요. 따라서 클라이언트가 원하지 않는 스크롤 방향이 활성화되어 있는 경우 UI 자동화 클라이언트는 경합 상태를 방지하면서 SetScrollPercent 메서드 내에서 이러한 속성 값을 사용할 수 있습니다.HorizontalScrollPercent 는 로캘과 관련됩니다. HorizontalScrollPercent = 100.0으로 설정하는 경우 왼쪽에서 오른쪽으로 읽는 언어(예: 영어)에서 컨트롤의 스크롤 위치는 맨 오른쪽 위치에 해당하는 값으로 설정해야 합니다. 또는 오른쪽에서 왼쪽으로 읽는 언어(예: 아랍어)의 경우 HorizontalScrollPercent = 100.0으로 설정할 경우 스크롤 위치는 맨 왼쪽 위치로 설정해야 합니다.
IScrollProvider에 필요한 멤버
IScrollProvider를 구현하려면 다음과 같은 속성 및 메서드가 필요합니다.
필요한 멤버 | 멤버 형식 | 주의 |
---|---|---|
HorizontalScrollPercent | 속성 | None |
VerticalScrollPercent | 속성 | None |
HorizontalViewSize | 속성 | None |
VerticalViewSize | 속성 | None |
HorizontallyScrollable | 속성 | None |
VerticallyScrollable | 속성 | None |
Scroll | 메서드 | None |
SetScrollPercent | 메서드 | None |
이 컨트롤 패턴에 연결된 이벤트가 없습니다.
예외
공급자는 다음과 같은 예외를 throw해야 합니다.
예외 유형 | 조건 |
---|---|
ArgumentException | 컨트롤이 가로 또는 세로 스크롤에 대해서만Scroll 값을 지원하지만 SmallIncrement 값이 전달되는 경우에 LargeIncrement 은 이 예외를 발생시킵니다. |
ArgumentException | double로 변환할 수 없는 값이 전달되는 경우SetScrollPercent 가 이 예외를 발생시킵니다. |
ArgumentOutOfRangeException | 100보다 크거나 0보다 작은 값이 전달되는 경우(SetScrollPercent 에 해당하는 -1 제외) NoScroll가 이 예외를 발생시킵니다. |
InvalidOperationException | 지원되지 않는 방향으로 스크롤이 시도되면 Scroll 및 SetScrollPercent 둘 다 이 예외를 발생시킵니다. |