Анимация для вертикального смещения ScrollViewer

Я хочу анимировать вертикальную прокрутку ScrollViewer. Насколько я понимаю, это единственный способ получить это событие

private void viewer_ScrollChanged (object sender, ScrollChangedEventArgs e)

И внутри обработчика для запуска анимации. Но в этом случае обработчик будет вызываться на каждом шаге анимации. Как отличить процесс анимации от такого PageUp?

Может, есть способ лучше отменить изменения вертикального смещения?


person Mixer    schedule 09.04.2013    source источник
comment
Возможно, повторяющийся вопрос ?: stackoverflow.com/questions/665719/   -  person Ed Ayers    schedule 04.01.2014


Ответы (2)


К сожалению, для этого вам, вероятно, придется создать собственный элемент управления.

К счастью, это было сделано здесь. Я пробовал (давно), работает. О, я вижу, что есть / есть готовые DLL для скачивания со страницы, так что создавать ее с нуля не нужно.

person XAMeLi    schedule 09.04.2013

Не совсем понятно, что вы пытаетесь сделать, но я предполагаю, что вы хотите анимировать только тогда, когда пользователь перемещает полосу прокрутки с помощью мыши - так как насчет обработки MouseDown на ScrollViewer (запишите, какая позиция) и обработайте MouseUp, если была прокрутка сделать вашу анимацию?

Я думаю, что использование mouseup / down в этом случае нормально, поскольку вам не нужна анимация для общей прокрутки?

person Jim W says reinstate Monica    schedule 09.04.2013
comment
Все как вы описали. Но я бы хотел оживить все возможные ситуации. (Колесо мыши, Начало, Конец и т. Д.) А не для расчета необходимого смещения. Т.е. просто анимируйте все типы смещений. - person Mixer; 09.04.2013