Advertisement
Adytzu04

Mouse Move,Resize,Zoom Image

Jan 13th, 2017
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.96 KB | None | 0 0
  1. //xaml
  2.             <Canvas Name="cnvImage">
  3.                 <Image Name="imgF"/>
  4.             </Canvas>
  5. //cs
  6.         //FirstPoint to move image
  7.         private Point firstPoint = new Point();
  8.  
  9.         public void InitMRZ()
  10.         {
  11.             imgF.MouseLeftButtonDown += (ss, ee) =>
  12.             {
  13.                 firstPoint = ee.GetPosition(this);
  14.                 imgF.CaptureMouse();
  15.             };
  16.  
  17.             imgF.MouseWheel += (ss, ee) =>
  18.              {
  19.                  Matrix mat = imgF.RenderTransform.Value;
  20.                  Point mouse = ee.GetPosition(imgF);
  21.  
  22.                  if (ee.RightButton == MouseButtonState.Pressed)
  23.                  {
  24.                      //-- Rotate
  25.                      if (ee.Delta > 0) mat.RotateAtPrepend(2, mouse.X, mouse.Y);
  26.                      else mat.RotateAtPrepend(-2, mouse.X, mouse.Y);
  27.                  }
  28.                  else
  29.                  {
  30.                      //-- Zoom
  31.                      if (ee.Delta > 0) mat.ScaleAtPrepend(1.15, 1.15, mouse.X, mouse.Y);
  32.                      else mat.ScaleAtPrepend(1/1.15,1/1.15,mouse.X,mouse.Y);
  33.                  }
  34.                  MatrixTransform mft = new MatrixTransform(mat);
  35.                  imgF.RenderTransform = mft;
  36.              };
  37.  
  38.             imgF.MouseMove += (ss, ee) =>
  39.             {
  40.                 if (ee.LeftButton == MouseButtonState.Pressed)
  41.                 {
  42.                     //-- Create temp point
  43.                     Point temp = ee.GetPosition(this);
  44.                     Point res = new Point(firstPoint.X - temp.X, firstPoint.Y - temp.Y);
  45.  
  46.                     //-- Update image location
  47.                     Canvas.SetLeft(imgF, Canvas.GetLeft(imgF) - res.X);
  48.                     Canvas.SetTop(imgF, Canvas.GetTop(imgF) - res.Y);
  49.  
  50.                     //-- Update first point
  51.                     firstPoint = temp;
  52.                 }
  53.             };
  54.             imgF.MouseUp += (ss, ee) => { imgF.ReleaseMouseCapture(); };
  55.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement