Advertisement
Guest User

Hseyin Tfekilerli

a guest
Feb 23rd, 2009
270
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.68 KB | None | 0 0
  1. namespace MoveAndZoom
  2. {
  3.     using System.Windows;
  4.     using System.Windows.Input;
  5.     using System.Windows.Media;
  6.  
  7.     public partial class Window1 : Window
  8.     {
  9.         private TranslateTransform panTransform;
  10.         private ScaleTransform zoomTransform;
  11.         private TransformGroup renderTransform;
  12.  
  13.         Point p;
  14.         public Window1()
  15.         {
  16.             InitializeComponent();
  17.  
  18.             panTransform = new TranslateTransform();
  19.             zoomTransform = new ScaleTransform();
  20.             renderTransform = new TransformGroup();
  21.  
  22.             renderTransform.Children.Add(panTransform);
  23.             renderTransform.Children.Add(zoomTransform);
  24.  
  25.             Img.RenderTransform = renderTransform;
  26.         }
  27.  
  28.         private void Img_MouseWheel(object sender, MouseWheelEventArgs e)
  29.         {
  30.             var zoomFactor = e.Delta > 0 ? 1.1 : 0.9;
  31.  
  32.             zoomTransform.ScaleX *= zoomFactor;
  33.             zoomTransform.ScaleY *= zoomFactor;
  34.         }
  35.  
  36.         private void Img_MouseMove(object sender, MouseEventArgs e)
  37.         {
  38.             Point x = e.GetPosition(ImageHolder);
  39.             if (e.LeftButton == MouseButtonState.Pressed)
  40.             {
  41.                 panTransform.X += (x.X - p.X) / zoomTransform.ScaleX;
  42.                 panTransform.Y += (x.Y - p.Y) / zoomTransform.ScaleY;
  43.             }
  44.             p = x;
  45.         }
  46.  
  47.         private void Img_MouseDown(object sender, MouseButtonEventArgs e)
  48.         {
  49.             Img.CaptureMouse();
  50.             p = e.GetPosition(ImageHolder);
  51.         }
  52.  
  53.         private void Img_MouseUp(object sender, MouseButtonEventArgs e)
  54.         {
  55.             Img.ReleaseMouseCapture();
  56.         }
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement