Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- namespace MoveAndZoom
- {
- using System.Windows;
- using System.Windows.Input;
- using System.Windows.Media;
- public partial class Window1 : Window
- {
- private TranslateTransform panTransform;
- private ScaleTransform zoomTransform;
- private TransformGroup renderTransform;
- Point p;
- public Window1()
- {
- InitializeComponent();
- panTransform = new TranslateTransform();
- zoomTransform = new ScaleTransform();
- renderTransform = new TransformGroup();
- renderTransform.Children.Add(panTransform);
- renderTransform.Children.Add(zoomTransform);
- Img.RenderTransform = renderTransform;
- }
- private void Img_MouseWheel(object sender, MouseWheelEventArgs e)
- {
- var zoomFactor = e.Delta > 0 ? 1.1 : 0.9;
- zoomTransform.ScaleX *= zoomFactor;
- zoomTransform.ScaleY *= zoomFactor;
- }
- private void Img_MouseMove(object sender, MouseEventArgs e)
- {
- Point x = e.GetPosition(ImageHolder);
- if (e.LeftButton == MouseButtonState.Pressed)
- {
- panTransform.X += (x.X - p.X) / zoomTransform.ScaleX;
- panTransform.Y += (x.Y - p.Y) / zoomTransform.ScaleY;
- }
- p = x;
- }
- private void Img_MouseDown(object sender, MouseButtonEventArgs e)
- {
- Img.CaptureMouse();
- p = e.GetPosition(ImageHolder);
- }
- private void Img_MouseUp(object sender, MouseButtonEventArgs e)
- {
- Img.ReleaseMouseCapture();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement