Itemscontrol网格的Scrollview

时间:2014-05-17 21:21:04

标签: c# wpf scrollview itemscontrol

我有一个自定义控件,基本上是一个itemscontrol。 这是一个3x3按钮的网格,我希望滚动视图具有不同的页面,每个页面都有3x3按钮。

以下是一些图片来说明我的意思:

http://i59.tinypic.com/2reiez6.png

http://i59.tinypic.com/69kwhl.png

http://i61.tinypic.com/1z4cr6d.png

我如何创建这样的东西?| 我的控件的完整代码可以在这里找到: Access ItemsControl Items and Animate One by One

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以在网格中添加ScrollViewer,并将3x3网格放在水平方向的StackPanel中。

<Grid >
        <ScrollViewer VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Visible" ScrollChanged="ScrollViewer_ScrollChanged">
            <StackPanel Orientation="Horizontal" Name="stack">
                  ...
            </StackPanel>
        </ScrollViewer>
    </Grid>

然后使用ScrollViewer_ScrollChanged更改滚动偏移量

private void ScrollViewer_ScrollChanged(object sender, ScrollChangedEventArgs e)
    {
        int direction = e.HorizontalChange > 0 ? 1 : -1;
        (sender as ScrollViewer).ScrollToHorizontalOffset(stack.ActualWidth * direction / [number of grids]);

    }