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





вы пробовали этот подход?
просто как аддон, я не знаю, сколько вы знаете о предмете, но вот хорошее место, чтобы прочитать об этом больше.
добавлен:
Я только что обнаружил, что вы также можете предотвратить прокрутку колеса мыши.
Элементы прокручиваются в представление, потому что по умолчанию при щелчке по элементу списка вызывается BringIntoView (). Вы можете добавить обработчик событий для события RequestBringIntoView и перехватить его, прежде чем оно перейдет из ListViewItems в ScrollViewer. В своем обработчике проверьте границы отправителя относительно видимой области и, если вы решите, что вам не нужно прокручивать, установите для флага события Handled значение true.
Поскольку я сейчас в пути, я не могу попробовать это, но пробовали ли вы поиграть с CanContentScroll и / или перенести прокручиваемый контент в Panel, как это предлагается Обзор ScrollViewer на MSDN?
В худшем случае вы можете захотеть заменить ListViewItemsPanel на взломанный ScrollViewer с "нечетким" фактором, например путем захвата события RequestBringIntoView.
Чтобы уточнить, используйте событие PreviewMouseDown, чтобы проглотить его.