У меня есть пользовательский элемент управления, который в основном является элементом управления. Это сетка кнопок 3x3, и я хочу, чтобы scrollview имел разные страницы с каждой страницей, имеющей 3x3 кнопки.
Ниже приведены некоторые иллюстрации, иллюстрирующие, что я имею в виду:
Как мне создать что-то вроде этого? Полный код моего контроля можно найти здесь: Access ItemsControl Items и Animate One by One
Заранее спасибо!
Вы можете добавить 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]);
}