Frage

Ich habe einen WPF -Scrollviewer, den ich zum Pannen verwende (Mousedown, Mousemove, MouseUp), und ich möchte einen Beschleunigungseffekt einbeziehen, der Trägheit beinhaltet. Wenn sich die Maus über eine Schwellengeschwindigkeit hinaus bewegt und ich die Maus löste, verlangsamt sie sich weiter, verlangsamt sich jedoch als Funktion der Anfangsgeschwindigkeit. Irgendwelche Ideen, Gedanken oder Beispiele?

War es hilfreich?

Lösung

Ich habe dies im Grunde genommen schon einmal gemacht und begann mit Scrollviewer, aber am Ende warf es weg und benutzte eine Viewbox mit einer Leinwand als Kind für die absolute Positionierung von Inhalten (ich unterstützte Zoom Aswel als Scroll, es war im Grunde Deepzoom Ohne die skalierten Bilder zum Zoomen gab es also Pixelierung, wenn sie direkt eingezoomt wurden). Ich schrieb Code für die Bestimmung der Gestenrichtung und die Geschwindigkeit der Geste aus den Mausereignissen und konvertierte diese in eine Bildlaufrichtung und -geschwindigkeit und animierte dann die Eigenschaften der Leinwand. von der Kindesschachtel -Leinwand) mit Doubleanimation. Es hat gut funktioniert, aber es kann einen besseren Weg geben ...Hier Ein Thread, der vorschlägt, DeepZoom in WPF über eine Rahmenkontrolle zu hosten (obwohl ich es nicht so machen würde).

Bearbeiten: Grundsätzlich war der Scrollviewer einfach zu einschränkend. Selbst wenn Sie in die ControlTemplate einsteigen und direkt auf die Scrollbars verweisen, ist es die Position des Daumens dieser Scrollbars, die Sie zum Animieren benötigen würden, und ich bin mir ziemlich sicher Vor fast 3 Jahren :)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top