从后面的代码水平滚动的Gridview

时间:2017-10-09 16:02:13

标签: c# windows uwp

我在gridview中有一个按字母顺序排序的列表,可以水平滚动。现在,可见网格视图有两行列表项,总共有5列。我需要添加一个功能,当单击下一个按钮时,gridview将滚动到列表的下两列。

1 个答案:

答案 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