Добавление кнопки, которая заменит прокрутку в listView - PullRequest
0 голосов
/ 24 ноября 2010

Я хочу написать некоторый элемент управления, который будет содержать 2 кнопки и listView. Нажатие кнопки 1 прокрутит список вверх. Нажатие кнопки 2 приведет к прокрутке списка вниз.

Прямая прокрутка списка будет недоступна - (будет невидима?).

  1. Я не нахожу метод просмотра списка «прокрутка вверх» / «прокрутка вниз», чтобы я мог вызвать событие кнопки.

  2. Как сделать так, чтобы прокрутка в виде списка всегда была видна?

Кто-то может помочь мне здесь?

Спасибо.

1 Ответ

1 голос
/ 24 ноября 2010

У вас есть два варианта, один проще, чем другой.

Первый вариант (более простой, но немного хакерский способ): используя VisualTreeHelper, получите ссылку на ScrollViewer в ControlTemplate ListView.Затем вы можете использовать методы LineUp и LineDown для прокрутки содержимого вверх и вниз, а статический метод SetVerticalScrollBarVisibility - для скрытия полосы прокрутки.Лично я бы не использовал этот подход, потому что мне не нравится полагаться на дерево визуалов, которое может измениться.

Второй вариант (немного сложнее, но не так уж плохо, если вы знаете, как): написать новый элемент управленияШаблон для ListView (может потребоваться изменить шаблоны для его ScrollViewer + ScrollBar), добавив две кнопки, которые вызывают ScrollBar.LineUpCommand и ScrollBar.LineDownCommand.Если вы хотите сделать это, я бы предложил получить копию ShowMeTheTemplate, а затем просто скопируйте и вставьте оригинал (ы) и измените его.

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

...