2017-10-09 9 views
0

gridviewでアルファベット順にソートされたリストを横方向にスクロールしています。現在、表示可能なグリッドビューには、合計5列のリスト項目が2行あります。次のボタンをクリックすると、gridviewがリストの次の2列にスクロールされる機能を追加する必要があります。グリッドビューの横スクロールコードの後ろ

答えて

0

GridViewの中にScrollViewerを最初に取得する必要があります。以下の方法を使用して取得することができます。

public ScrollViewer GetScrollViewer(DependencyObject element) 
{ 
    if (element is ScrollViewer) 
    { 
     return (ScrollViewer)element; 
    } 

    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(element); i++) 
    { 
     var child = VisualTreeHelper.GetChild(element, i); 

     var result = GetScrollViewer(child); 
     if (result == null) 
     { 
      continue; 
     } 
     else 
     { 
      return result; 
     } 
    } 
    return null; 
} 

その後、Buttonクリックイベント

ScrollViewer scrollViewer = GetScrollViewer(gridView); 

private void NextButton_Click(object sender, RoutedEventArgs e) 
{ 
    scrollViewer.ChangeView(scrollViewer.HorizontalOffset + (GridViewItemSize * 2), scrollViewer.VerticalOffset, null, false); 
} 

では、私はこれを行うためのヘルパーを作成している - SmoothScrollNavigation Helper

+0

ありがとうございました、それが働きました! – rajbir

関連する問題