10) ScrollPattern
스크롤 패턴은 자식 요소 컬렉션을 갖고 있을 때 스크롤 가능한 컨테이너 컨트롤 패턴이며 자식 요소는 ScrollItemPattern을 지원합니다.
System.Object
System.Windows.Automation.BasePattern
System.Windows.Automation.ScrollPattern
네임스페이스: System.Windows.Automation
어셈블리: UIAutomationClient(UIAutomationClient.dll)
ScroollPattern의 Current 및 Cached 속성으로 ScrollPatternInformation 구조체를 접근할 수 있습니다. 그리고 ScrollPatternInformation 구조체에는 수평, 수직 컨트롤 가능 여부와 스크롤 위치 및 뷰의 크기를 가져오기 할 수 있는 속성을 제공합니다.
속성명 | 설명 |
HorizontallyScrollable | 수평 스크롤 가능 여부 |
HorizontalScrollPercent | 수평 스크롤 현재 위치 |
HorizontalViewSize | 수평 스크롤 뷰의 크기 |
VerticallyScrollable | 수직 스크롤 가능 여부 |
VerticalScrollPercent | 수직 스크롤 현재 위치 |
VerticalViewSize | 수직 스크롤 뷰의 크기 |
[표 5.12] ScrollPatternInformation 구조체의 속성
그리고 ScrollPattern 클래스에서는 Scroll, ScrollHorizontal, ScrollVertical, SetScrollPercent 메서드를 제공하여 프로그램 방식으로 제어할 수 있습니다.
public void ScrollHorizontal(ScrollAmount horz_amount, ScrollAmount vert_amount) public void ScrollHorizontal(ScrollAmount amount) public void ScrollVertical(ScrollAmount amount) public void SetScrollPercent(double horizontalPercent, double verticalPercent)
또한 ScrollPattern 클래스에서는 식별에 사용하는 정적 멤버 필드를 제공하고 있습니다.
멤버명 | 설명 |
HorizontallyScrollableProperty | HorizontallyScrollable 속성 식별 |
HorizontalScrollPercentProperty | HorizontalScrollPercent 속성 식별 |
HorizontalViewSizeProperty | HorizontalViewSize 속성 식별 |
NoScroll | 스크롤 하지 못하게 지정 |
Pattern | ScrollPattern 식별 |
VerticallyScrollableProperty | VerticallyScrollable 속성 식별 |
VerticalScrollPercentProperty | VerticalScrollPercent 속성 식별 |
VerticalViewSizeProperty | VerticalViewSize 속성 식별 |
[표 5.13] ScrollPattern 클래스의 정적 멤버 필드
11) ScrollItemPattern
ScrollItemPattern은 ScrollPattern의 자식 컨트롤에서 지원하는 패턴입니다.
System.Object
System.Windows.Automation.BasePattern
System.Windows.Automation.ScrollItemPattern
네임스페이스: System.Windows.Automation
어셈블리: UIAutomationClient(UIAutomationClient.dll)
그리고 ScrollItemPattern 클래스에서는 ScrollInfoView 메서드를 제공하여 부모 컨테이너 컨트롤의 표시 영역 내에 나타날 수 있게 스크롤을 제어할 수 있습니다.
또한 ScrollPattern 클래스에서는 식별에 사용하는 정적 멤버 필드 Pattern을 제공합니다.
ScrollItemPattern sip= GetScrollItemPattern(ae); if (sip == null){ return; } try { sip.ScrollIntoView(); } catch{ }