В основном я делал это раньше и начал с просмотра ScrollViewer, но в конце концов выбросил его и использовал Viewbox с Canvas в качестве дочернего элемента для абсолютного позиционирования контента (я поддерживал zoom aswel в качестве прокрутки, это было в основном DeepZoom без масштабированных изображений для увеличения, чтобы при увеличении изображения была пикселизация). Я написал код для определения направления жеста и скорости жеста по событиям мыши и преобразовал его в направление и скорость прокрутки, а затем анимировал свойства Canvas.Left и Canvas.Top прокручиваемого содержимого (которое находилось в коллекции Children). дочернего холста Viewbox) с DoubleAnimation. Это сработало хорошо, но, возможно, есть лучший способ ... heres поток, предлагающий хостинг DeepZoom в WPF с помощью элемента управления Frame (хотя я бы так не делал).
РЕДАКТИРОВАТЬ: в основном ScrollViewer был слишком ограничен. Даже если вы попадете в ControlTemplate и получите ссылки на ScrollBars напрямую, именно положение большого пальца этих полос прокрутки вам нужно будет анимировать, и я уверен, что это то, что я обнаружил, что не смог сделать (это было почти 3 года назад :)