Pregunta

Tengo un WPF ScrollViewer que uso para Panning (MouseDown, MouseMove, MouseUp) y me gustaría incluir un efecto de aceleración que incorpore inercia. Entonces, si el mouse se mueve más allá de una velocidad de umbral y libero el mouse, continúa con la franja pero ralentiza en función de la velocidad inicial. ¿Alguna idea, pensamiento o ejemplos?

¿Fue útil?

Solución

Básicamente, hice esto antes y comencé mirando ScrollViewer, pero al final lo tiré y usé un cuadro de vista con un lienzo como el niño para el posicionamiento absoluto del contenido (estaba apoyando a Zoom Aswel como desplazamiento, básicamente fue Espiga sin las imágenes escaladas para zoom, por lo que había pixelación cuando se acercaba a la derecha). Escribí código para determinar la dirección del gesto y la velocidad del gesto de los eventos del ratón y convertí esto en una dirección y velocidad de desplazamiento y luego animé el lienzo.left y el lienzo. del lienzo infantil del ViewBox) con Doubleanimation. Funcionó bien, sin embargo, puede haber una mejor manera ...garabato Un hilo que sugiere alojar a DeepZoom en WPF a través de un control de cuadro (aunque no lo haría de esa manera).

EDITAR: Básicamente, el ScrollViewer era demasiado restringido. Incluso si entras en la placa de control de control y obtienes referencias a las barras de desplazamiento directamente, es la posición del pulgar de estas barras de desplazamiento que necesitarías animar y estoy bastante seguro de que esto es lo que descubrí que no podía hacer (era Hace casi 3 años :)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top