UI 자동화 Scroll 컨트롤 패턴 구현
![]() |
---|
이 문서는 System.Windows.Automation 네임스페이스에 정의된 관리되는 UI Automation 클래스를 사용하려는 .NET Framework 개발자를 위해 작성되었습니다.UI Automation에 대한 최신 정보는 Windows Automation API: UI Automation을 참조하십시오. |
이 항목에서는 이벤트 및 속성에 대한 정보를 포함하여 IScrollProvider 구현에 대한 지침 및 규칙을 소개합니다. 추가 참조에 대한 링크는 항목 끝 부분에 나와 있습니다.
ScrollPattern 컨트롤 패턴은 자식 개체 컬렉션의 스크롤 가능한 컨테이너 기능을 하는 컨트롤을 지원하는 데 사용합니다. 일반적으로 이 컨트롤은 스크롤 막대를 사용하지만, 스크롤 기능을 지원하기 위해 반드시 스크롤 막대를 사용할 필요는 없습니다.
스크롤 막대를 사용하지 않는 스크롤 컨트롤의 예
이 컨트롤 패턴을 구현하는 컨트롤 예제를 보려면 UI 자동화 클라이언트에 대한 컨트롤 패턴 매핑을 참조하십시오.
이 항목에는 다음 단원이 포함되어 있습니다.
- 구현 지침 및 규칙
- IScrollProvider의 필수 멤버
- 예외
- 관련 항목
구현 지침 및 규칙
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 구현에 필요한 속성 및 메서드는 다음과 같습니다.
필수 멤버 |
멤버 형식 |
참고 |
---|---|---|
Property |
없음 |
|
Property |
없음 |
|
Property |
없음 |
|
Property |
없음 |
|
Property |
없음 |
|
Property |
없음 |
|
메서드 |
없음 |
|
메서드 |
없음 |
이 컨트롤 패턴에는 연결된 이벤트가 없습니다.
예외
공급자는 다음 예외를 throw해야 합니다.
예외 형식 |
조건 |
---|---|
컨트롤에서 가로 또는 세로 스크롤에 SmallIncrement 값만 지원하는데 LargeIncrement 값이 전달된 경우 Scroll이 이 예외를 throw합니다. |
|
double 형식으로 변환할 수 없는 값이 전달된 경우 SetScrollPercent가 이 예외를 throw합니다. |
|
100보다 크거나 0보다 작은 값이 전달된 경우 SetScrollPercent가 이 예외를 throw합니다(NoScroll과 동일한 -1은 예외). |
|
지원되지 않는 방향으로 스크롤하려고 시도하는 경우 Scroll 및 SetScrollPercent가 모두 이 예외를 throw합니다. |