Im, используя WPF ScrollViewer для размещения некоторых элементов управления. Мне бы очень хотелось, чтобы он взаимодействовал, как на сенсорном устройстве, где он медленно убирается на место, когда вы тянете его слишком далеко.Есть ли простой способ сделать ScrollViewer "bouncy"?
Это не имеет полос прокрутки - У меня есть ручная мыши прокрутки с кнопкой мыши и перетащить с помощью этого кода:
Point currentPoint = e.GetPosition(this);
// Determine the new amount to scroll.
Point delta = new Point(scrollStartPoint.X - currentPoint.X, scrollStartPoint.Y - currentPoint.Y);
if (Math.Abs(delta.X) < PixelsToMoveToBeConsideredScroll &&
Math.Abs(delta.Y) < PixelsToMoveToBeConsideredScroll)
return;
scrollTarget.X = scrollStartOffset.X + delta.X;
scrollTarget.Y = scrollStartOffset.Y + delta.Y;
// Scroll to the new position.
sv.ScrollToHorizontalOffset(scrollTarget.X);
sv.ScrollToVerticalOffset(scrollTarget.Y);
есть простой способ сделать это? В настоящее время он просто действует как обычное текстовое поле прокрутки и не будет выходить за пределы его нормального диапазона и не замедлять его назад.
См. Http://aniscrollviewer.codeplex.com/ - Я не проверял код, но он утверждает, что он расширил стандартный 'ScrollViewer', чтобы обновить позицию из обновления анимации. – ChrisF
Спасибо @ChrisF, но этот пример - только плавная прокрутка и не дает никакого типа взаимодействия «касаться перетаскивания», а также не плавно возвращается обратно в нормальные рамки: | – kvanberendonck
Ах - Вы не можете использовать другую функцию ослабления? – ChrisF