В WPF ListView, как я могу предотвратить автоматическую прокрутку? - PullRequest
3 голосов
/ 16 октября 2008

У меня есть WPF ListView, который в настоящее время прокручивается каждый раз, когда я нажимаю на элемент, который виден только частично. Как я могу удержать элемент управления от прокрутки этого элемента (вместо того, чтобы просто выбрать частично видимый)? Такое поведение очень раздражает при выполнении перетаскивания из этого элемента управления.

Спасибо.

Добавлено: я ищу решение для предотвращения прокрутки самого элемента управления при щелчке содержимого, которое, по мнению элемента управления, отображается не полностью. Часто это на несколько пикселей и прокрутка не нужна.

Ответы [ 3 ]

5 голосов
/ 17 октября 2008

Элементы прокручиваются в поле зрения, потому что поведение по умолчанию при щелчке элемента списка заключается в вызове BringIntoView (). Вы можете добавить обработчик события для события RequestBringIntoView и перехватить его, прежде чем оно всплывет из ListViewItems в ScrollViewer. В вашем обработчике проверьте границы отправителя по отношению к видимой области, и если вы решите, что вам не нужно прокручивать, установите для флага события Handled значение true.

1 голос
/ 20 октября 2008

Поскольку я в настоящее время в дороге, я не могу попробовать это, но вы пытались поиграться с CanContentScroll и / или обернуть прокручиваемый контент в Panel, как предложено в ScrollViewer Overview на MSDN * * 1003

В худшем случае вы можете заменить ListView ItemsPanel на взломанный ScrollViewer с коэффициентом «нечеткости», например, захватывая событие RequestBringIntoView.

0 голосов
/ 16 октября 2008

вы пробовали такой подход ?

Как аддон, я не знаю, сколько вы знаете о предмете, но вот хорошее место , чтобы узнать больше об этом.

добавлен:

Я только что обнаружил, что вы можете предотвратить прокрутку колесиком мыши .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...