Necesito la posición precisa del puntero de mi mouse sobre un PictureBox.Cómo recuperar el factor de zoom de un WinForms PictureBox?
Utilizo el evento MouseMove del PictureBox.
En esta PictureBox, utilizo la propiedad "ampliar" para mostrar una imagen.
¿Cuál es la forma correcta de obtener la posición del mouse en la imagen original (sin zoom)?
¿Hay alguna manera de encontrar el factor de escala y usarlo?
Creo que es necesario utilizar imageOriginalSize/imageShowedSize para recuperar este factor de escala.
puedo utilizar esta función:
float scaleFactorX = mypic.ClientSize.Width/mypic.Image.Size.Width;
float scaleFactorY = mypic.ClientSize.Height/mypic.Image.Size.Height;
es posible utilizar este valor para obtener la posición correcta del cursor sobre la imagen?
Supongo que puedes probar: Point cursorPosition = mypic.PointToClient (Cursor.Position); Point positionOverImage = new Point (cursorPosition.X/scaleFactorX, cursorPosition.Y/scaleFactorY) ;. Sin embargo, supongo que puede haber algunos problemas de precisión cuando contabilizas el factor de acercamiento usando este método. Te sugiero que escales la imagen por tu cuenta. –
gracias, pero no funciona. La posición es incorrecta, obtengo el mismo valor cuando uso la posición pointtoclient y eventmouseargs. – devilkkw
Publique el fragmento de código calculando las coordenadas que está utilizando actualmente. –