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입니다.
이감사합니다.