Как включить скорость и / или ускорение в средство просмотра (WPF)? - PullRequest
2 голосов
/ 23 февраля 2010

У меня есть WPF scrollViewer, который я использую для панорамирования (MouseDown, MouseMove, MouseUp), и я хотел бы включить эффект ускорения, включающий инерцию. Итак, если мышь выходит за пределы пороговой скорости, и я отпускаю мышь, она продолжает панорамирование, но замедляется как функция начальной скорости. Есть идеи, мысли или примеры?

1 Ответ

2 голосов
/ 23 февраля 2010

В основном я делал это раньше и начал с просмотра ScrollViewer, но в конце концов выбросил его и использовал Viewbox с Canvas в качестве дочернего элемента для абсолютного позиционирования контента (я поддерживал zoom aswel в качестве прокрутки, это было в основном DeepZoom без масштабированных изображений для увеличения, чтобы при увеличении изображения была пикселизация). Я написал код для определения направления жеста и скорости жеста по событиям мыши и преобразовал его в направление и скорость прокрутки, а затем анимировал свойства Canvas.Left и Canvas.Top прокручиваемого содержимого (которое находилось в коллекции Children). дочернего холста Viewbox) с DoubleAnimation. Это сработало хорошо, но, возможно, есть лучший способ ... heres поток, предлагающий хостинг DeepZoom в WPF с помощью элемента управления Frame (хотя я бы так не делал).

РЕДАКТИРОВАТЬ: в основном ScrollViewer был слишком ограничен. Даже если вы попадете в ControlTemplate и получите ссылки на ScrollBars напрямую, именно положение большого пальца этих полос прокрутки вам нужно будет анимировать, и я уверен, что это то, что я обнаружил, что не смог сделать (это было почти 3 года назад :)

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