2010-12-18 51 views
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在。

感謝。

回答

0

我不知道,如果這是您正在尋找的答案,但是Thumb控件會爲您提供一個DragDelta,如果您將Thumb包裝到模板中,然後將模板分配給圖像對象,或將該圖像作爲模板分配給Thumb