개발자국/WPF / Expression
[WPF] Scrollbar Position Event
알 수 없는 사용자
2012. 9. 14. 18:39
요즘 폰으로 스크롤을 하다 보면,
스크롤이 다 내려갈 즈음에 Data가 Update 되는 경우가 많다.
이걸 WPF의 Listbox 나 Datagrid 혹은 ScrollViewer 에서 적용하기 위해
알아보았다.
Test를 하기 위해, ScrollViewer를 만들고 ScrollChanged Event를 받았다.
private void scrollViewer1_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
ScrollViewer aa = new ScrollViewer();
textBlock1.Text = e.VerticalOffset.ToString();
textBlock2.Text = e.ExtentHeight.ToString();
textBlock3.Text = e.ViewportHeight.ToString();
double percent = 0;
percent = ((e.VerticalOffset + e.ViewportHeight) / e.ExtentHeight);
textBlock4.Text = ((int)(percent * 100)).ToString() + " %";
}
더블클릭 신공으로 Event를 받아버려서 테스트를 했다.
<<= e.VerticalOffset : 보이는 부분의 가장 상단을 의미한다. 초기값 0
e.ViewportHeight : 현재 보이는 영역의 Height를 말한다. 스크롤바와 같은 높이라고 보면 되겠다.
e.ExtentHeight : 스크롤이 생겨났을 때, 스크롤이 안생길때까지 세로로 펼친 모습,
즉, 스크롤이 없다고 가정하였을 때, 쭉 펼친 높이라 할 수 있다.
위의 예제를 실행해 보면 textBlock4 에서 높이의 Percentage가 나오는 것을 확인할 수 있다.
테스트용 프로그램이라 귀차니즘이 가득한 코드지만,
까먹기 쉬운 Scrollbar Event 이다.