2010-12-18 23 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が得られます。

関連する問題