3
我有一個網格小演示應用程序。這個網格包含一個圖像。我使用下面的代碼通過觸摸來縮放和翻譯圖像。WPF多點觸控DeltaManipulation鼠標事件等效?
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屬性。
我想在其他演示應用程序中具有相同的功能,而無需觸摸,但使用鼠標事件處理程序。
我想這樣的事情對鼠標移動的翻譯,但它的不一樣:(
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);
}
lastPoint是第一點OnMouseLeftButtonDown在。
感謝。