Перезапись пользовательского обработчика событий как ScrollViewer

Я пытаюсь перезаписать обработчик событий MouseWheel для ScrollViewer. Поскольку ScrollViewer запечатан, я не могу просто создать «пользовательский» класс, наследующий его. Я предполагаю, что общий вопрос будет таким: «Как мне перезаписать событие по умолчанию». (Или что-то подобное ;-))

Изменить: событие, которое должно заменить «прокрутку» по умолчанию, запускается только тогда, когда ScrollViewer не может быть прокручен или достигает предела.


person Dänu    schedule 07.07.2010    source источник


Ответы (2)


Поскольку ScrollViewer запечатан, будет сложно переопределить его поведение. Событие ScrollChanged предоставляет информацию только для чтения и не может быть отменено. Возможно, вам придется реализовать собственное средство просмотра прокрутки, полученное из ContentControl. Какое поведение прокрутки вы пытаетесь реализовать?

person Wallstreet Programmer    schedule 07.07.2010
comment
Ну, я хотел создать Drag to Scroll - только ScrollViewer, на котором пользователь может масштабировать с помощью колесика мыши, но я думаю, что на самом деле это действительно проще реализовать без использования ScrollViewer вообще. - person Dänu; 07.07.2010

В обработчике событий установите для свойства Handled параметра MouseWheelEventArgs значение true перед возвратом.

person James Curran    schedule 07.07.2010