我有一个自定义控件,基本上是一个itemscontrol。 这是一个3x3按钮的网格,我希望滚动视图具有不同的页面,每个页面都有3x3按钮。
以下是一些图片来说明我的意思:
我如何创建这样的东西?| 我的控件的完整代码可以在这里找到: Access ItemsControl Items and Animate One by One
提前致谢!
答案 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]);
}