Table of Contents

Прокрутка

Область прокрутки с первыми восемью уровнями списка

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

Если внутри список или сетка элементов, создаются только видимые элементы, поэтому даже очень длинные списки прокручиваются плавно.

См. также