3
グリッド付きの小さなデモアプリがあります。このグリッドには画像が含まれています。私は、次のコードを使用して、タッチで画像を拡大縮小して翻訳します。WPFマルチタッチデルタ操作マウスイベント同等ですか?
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;
}
このマトリックスは、画像のレンダリング変換プロパティに配置されます。
他のデモアプリケーションでも、マウスイベントハンドラと接触することなく同じ機能を使用したいと考えています。
私は、マウスの動きに翻訳のためにこのような何かをしようとしましたが、そのことと同じ:(
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ある。
感謝。