2012-04-28 3 views
5

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); 

есть простой способ сделать это? В настоящее время он просто действует как обычное текстовое поле прокрутки и не будет выходить за пределы его нормального диапазона и не замедлять его назад.

+0

См. Http://aniscrollviewer.codeplex.com/ - Я не проверял код, но он утверждает, что он расширил стандартный 'ScrollViewer', чтобы обновить позицию из обновления анимации. – ChrisF

+0

Спасибо @ChrisF, но этот пример - только плавная прокрутка и не дает никакого типа взаимодействия «касаться перетаскивания», а также не плавно возвращается обратно в нормальные рамки: | – kvanberendonck

+0

Ах - Вы не можете использовать другую функцию ослабления? – ChrisF

ответ

1

Если вы работаете с сенсорным устройством, посмотрите на Microsoft SurfaceScrollViewer (http://msdn.microsoft.com/en-us/library/microsoft.surface.presentation.controls.surfacescrollviewer.aspx). У этого уже есть такое поведение.

Правильное касание касания - сложнее, проще найти кого-то другого, кто уже это сделал. ;-)

+0

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

Смежные вопросы