WPF多点触控DeltaManipulation鼠标事件等效?

WPF多点触控DeltaManipulation鼠标事件等效?,wpf,mouseevent,multi-touch,Wpf,Mouseevent,Multi Touch,我有一个带有网格的小演示应用程序。此网格包含一个图像。我使用以下代码来缩放和转换触摸图像 private void manipulationDelta(object sender, ManipulationDeltaEventArgs e) { Matrix matrix = imagematrix.Matrix; matrix.Translate(e.DeltaManipulation.Translation.X, e.DeltaMa

我有一个带有网格的小演示应用程序。此网格包含一个图像。我使用以下代码来缩放和转换触摸图像

        private void manipulationDelta(object sender, ManipulationDeltaEventArgs e)
    {

        Matrix matrix = imagematrix.Matrix;

        matrix.Translate(e.DeltaManipulation.Translation.X, e.DeltaManipulation.Translation.Y);
        matrix.ScaleAt(e.DeltaManipulation.Scale.X, e.DeltaManipulation.Scale.Y,
            e.ManipulationOrigin.X, e.ManipulationOrigin.Y);

        imagematrix.Matrix = matrix;

        e.Handled = true;

    }
矩阵放置在图像的rendertransformation属性处

我想在其他演示应用程序中使用相同的功能,不使用触摸,但使用鼠标事件处理程序

我尝试了类似于鼠标移动时的翻译,但结果不一样:(

lastPoint是MouseLeftButtonDown上的第一个点


谢谢。

我不确定,如果这是您正在寻找的答案,但是如果您将
拇指
包装到模板中,然后将模板指定给图像对象,或者将图像作为模板指定给
拇指
,则
控件将为您提供一个DragDelta

        protected override void OnMouseMove(MouseEventArgs e)
    {

        if (e.LeftButton == MouseButtonState.Pressed)
        {


            Vector delta = lastPoint - e.GetPosition(canvascontrol);

            Matrix matrix = PART_MATRIX.Matrix;

            if(delta.X > 0)
                matrix.OffsetX += 1;
            else
                matrix.OffsetX -= 1;

            if (delta.Y > 0)
                matrix.OffsetY += 1;
            else
                matrix.OffsetY -= 1;

            imagematrix.Matrix = matrix;

        }

        base.OnMouseMove(e);

    }