Прокрутка

ScrollViewer показывает содержимое больше себя и прокручивает его: длинный список, титры, страницу энциклопедии.
Разметка
<!-- ScrollViewer scrolls content larger than itself. -->
<ScrollViewer Width="240" Height="120">
<StackPanel Orientation="Vertical">
<TextBlock>1. Forest</TextBlock>
<TextBlock>2. Caves</TextBlock>
<TextBlock>3. Castle</TextBlock>
<TextBlock>4. Tower</TextBlock>
<TextBlock>5. Swamp</TextBlock>
<TextBlock>6. Volcano</TextBlock>
<TextBlock>7. Glacier</TextBlock>
<TextBlock>8. Throne room</TextBlock>
</StackPanel>
</ScrollViewer>
Задайте области прокрутки размер (или поместите её туда, где его ограничивает родитель); тогда её содержимое может быть сколь угодно высоким.
Основные свойства
| Свойство | Описание |
|---|---|
| VerticalScrollMode / HorizontalScrollMode | Прокручивается ли область по каждой оси. |
| VerticalOffset / HorizontalOffset | Положение прокрутки. |
| PanningMode | По каким осям содержимое сдвигается касанием и средней кнопкой мыши. |
События и команды
ScrollChanged срабатывает при изменении положения.
Стиль
Тема по умолчанию не рисует рамку; задайте BorderThickness и BorderBrush, если она нужна.
Клавиатура, геймпад и сенсорный ввод
Колесо мыши прокручивает содержимое. Палец или средняя кнопка мыши сдвигают его, а после резкого движения оно ещё немного движется по инерции. Когда фокус переходит к элементу вне видимой области, тот прокручивается в поле зрения.
Примечание
Бэкенд DesktopGL в MonoGame не сообщает о касаниях, поэтому там содержимое сдвигается только средней кнопкой мыши.
ScrollViewer
Если внутри список или сетка элементов, создаются только видимые элементы, поэтому даже очень длинные списки прокручиваются плавно.