2010-12-18 11 views
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입니다.

감사합니다.

답변

0

나는 확실하지 않다 , 이것이 당신이 찾고있는 대답이라면 Thumb을 템플릿으로 감싸고 템플릿을 이미지 객체에 할당하거나 이미지를 0으로 템플릿으로 지정하면 Thumb 컨트롤은 DragDelta를 제공합니다.