触摸操作在初始偏移问题上移动

时间:2013-02-03 12:57:08

标签: c# wpf

我正在使用ManipulationDelta事件拖动Canvas,如下所示:

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

这有效,但是当拖动开始时,Canvas总会在移动之前跳回到前一个位置。我怀疑它与我的lastMovePosition点有关。

是什么导致这种情况?

1 个答案:

答案 0 :(得分:2)

我想你必须在ManipulationStarted事件处理程序中初始化lastMovePosition字段:

private void OnManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
    lastMovePosition = e.ManipulationOrigin;
}