我在gridview中有一个按字母顺序排序的列表,可以水平滚动。现在,可见网格视图有两行列表项,总共有5列。我需要添加一个功能,当单击下一个按钮时,gridview将滚动到列表的下两列。
答案 0 :(得分:0)
首先,您需要在ScrollViewer
内获取GridView
。您可以使用以下方法获取它。
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