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