Reputation: 451
I'm using a ManipulationDelta
event to drag a Canvas
as follows:
private Point lastMovePosition;
private void MoveCanvas(ManipulationDeltaEventArgs e)
{
var position = e.ManipulationOrigin;
if (CanvasShareSwarm.Scale > 1) //Force zoom out limit to view all
{
CanvasShareSwarm.Offset -= position - lastMovePosition;
lastMovePosition = position;
}
}
This works but when the drag starts the Canvas
always jumps back to what seems to be a previous position before moving. I suspect it has to do with my lastMovePosition
point.
What could cause this?
Upvotes: 0
Views: 255
Reputation: 128181
I guess you would have to initialize the lastMovePosition
field in a ManipulationStarted event handler:
private void OnManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
lastMovePosition = e.ManipulationOrigin;
}
Upvotes: 2