private Vector GetMouseCoordinates() { Point mousePosNoTr = ViewerBox.PointToClient(MousePosition); var mousePos = new Vector { X = _renderer.XMin + mousePosNoTr.X * (_renderer.XMax - _renderer.XMin) / ViewerBox.Width, Y = _renderer.YMax - mousePosNoTr.Y * (_renderer.YMax - _renderer.YMin) / ViewerBox.Height }; return(mousePos); }
private Vector GetMouseCoordinates() { var mousePosNoTr = ViewerBox.PointToClient(MousePosition); var z = _replayController.ZoomCtrl; var mousePos = new Vector { X = z.Cam.XMin + mousePosNoTr.X * (z.Cam.XMax - z.Cam.XMin) / ViewerBox.Width, Y = z.Cam.YMax - mousePosNoTr.Y * (z.Cam.YMax - z.Cam.YMin) / ViewerBox.Height }; return(mousePos); }
/// <summary> /// This must be overridden in the Form because the pictureBox never receives MouseWheel messages /// </summary> protected override void OnMouseWheel(MouseEventArgs e) { if (hasPreview) { Point pt_MouseAbs = Control.MousePosition; Control i_Ctrl = ViewerBox; Rectangle r_Ctrl = i_Ctrl.RectangleToScreen(i_Ctrl.ClientRectangle); if (!r_Ctrl.Contains(pt_MouseAbs)) { base.OnMouseWheel(e); return; // mouse position is outside the picturebox } // Mouse position relative to the pictureBox Point pt_MouseRel = ViewerBox.PointToClient(pt_MouseAbs); // Presenter receive zoom request zoomSubject.OnNext(new ZoomDTO { x = pt_MouseRel.X, y = pt_MouseAbs.Y, zoom = e.Delta }); } }