Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //xaml
- <Canvas Name="cnvImage">
- <Image Name="imgF"/>
- </Canvas>
- //cs
- //FirstPoint to move image
- private Point firstPoint = new Point();
- public void InitMRZ()
- {
- imgF.MouseLeftButtonDown += (ss, ee) =>
- {
- firstPoint = ee.GetPosition(this);
- imgF.CaptureMouse();
- };
- imgF.MouseWheel += (ss, ee) =>
- {
- Matrix mat = imgF.RenderTransform.Value;
- Point mouse = ee.GetPosition(imgF);
- if (ee.RightButton == MouseButtonState.Pressed)
- {
- //-- Rotate
- if (ee.Delta > 0) mat.RotateAtPrepend(2, mouse.X, mouse.Y);
- else mat.RotateAtPrepend(-2, mouse.X, mouse.Y);
- }
- else
- {
- //-- Zoom
- if (ee.Delta > 0) mat.ScaleAtPrepend(1.15, 1.15, mouse.X, mouse.Y);
- else mat.ScaleAtPrepend(1/1.15,1/1.15,mouse.X,mouse.Y);
- }
- MatrixTransform mft = new MatrixTransform(mat);
- imgF.RenderTransform = mft;
- };
- imgF.MouseMove += (ss, ee) =>
- {
- if (ee.LeftButton == MouseButtonState.Pressed)
- {
- //-- Create temp point
- Point temp = ee.GetPosition(this);
- Point res = new Point(firstPoint.X - temp.X, firstPoint.Y - temp.Y);
- //-- Update image location
- Canvas.SetLeft(imgF, Canvas.GetLeft(imgF) - res.X);
- Canvas.SetTop(imgF, Canvas.GetTop(imgF) - res.Y);
- //-- Update first point
- firstPoint = temp;
- }
- };
- imgF.MouseUp += (ss, ee) => { imgF.ReleaseMouseCapture(); };
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement