Im usando un WPF ScrollViewer para alojar algunos controles. Realmente me gustaría interactuar como en un dispositivo táctil donde lentamente vuelve a su lugar cuando lo jalas demasiado.¿Hay alguna manera fácil de hacer que ScrollViewer sea "hinchable"?
no tiene una barra de desplazamiento - Tengo ratón manual de desplazamiento con hacer clic y arrastrar utilizando este código:
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);
¿Hay una manera fácil de hacer esto? Actualmente solo funciona como un cuadro de texto de desplazamiento normal y no se moverá fuera de su rango normal, ni lentamente retrocederá.
Ver http://aniscrollviewer.codeplex.com/ - No he comprobado el código pero indica que ha extendido el 'ScrollViewer' estándar para actualizar la posición desde una actualización de animación. – ChrisF
Gracias @ChrisF pero ese ejemplo es solo desplazamiento suave, y no da ningún tipo de interacción "toque sobre arrastre", ni rebota suavemente dentro de sus límites normales: | – kvanberendonck
Ah, ¿no puedes usar una función de relajación diferente? – ChrisF