2011-02-08 3 views
4

수동으로 ListView 컨트롤의 내용을 왼쪽으로 스크롤해야합니다.WPF : ListView 컨트롤을 가로 스크롤하는 방법?

스크롤하고자하는 항목이 보이지 않는 경우에만 scrollIntoView을 호출하면 자동으로 호출됩니다. ListView는 항목으로 스크롤하고 왼쪽으로 수평 스크롤합니다. 내가 필요로하는 것처럼.

하지만 스크롤 할 항목이 이미 표시되어 있으면 아무 것도 나타나지 않아 수동으로 왼쪽으로 스크롤해야합니다.

+1

항목이 이미 표시되어있는 경우 자동 스크롤은 무엇을 보여야합니까? – BertuPG

답변

3

ListView에 대한 ScrollViewer은 시각적 트리를 탐색 한 다음 ScrollToLeftEnd을 호출 할 수 있습니다. 이 같은 것이 작동해야합니다.

private void ScrollListViewToLeft(ListView listView) 
{ 
    ScrollViewer listViewScrollViewer = GetVisualChild<ScrollViewer>(listView); 
    listViewScrollViewer.ScrollToLeftEnd(); 
} 
private static T GetVisualChild<T>(DependencyObject parent) where T : Visual 
{ 
    T child = default(T); 
    int numVisuals = VisualTreeHelper.GetChildrenCount(parent); 
    for (int i = 0; i < numVisuals; i++) 
    { 
     Visual v = (Visual)VisualTreeHelper.GetChild(parent, i); 
     child = v as T; 
     if (child == null) 
     { 
      child = GetVisualChild<T>(v); 
     } 
     if (child != null) 
     { 
      break; 
     } 
    } 
    return child; 
} 
+0

잘 작동합니다! 고마워. – TalkingCode