Ho bisogno della posizione precisa del mio puntatore del mouse su un PictureBox.Come recuperare il fattore di zoom di un PictureBox di WinForms?
Uso l'evento MouseMove di PictureBox.
Su questo PictureBox, utilizzo la proprietà "zoom" per mostrare un'immagine.
Qual è il modo corretto per ottenere la posizione del mouse sull'immagine originale (senza zoom)?
C'è un modo per trovare il fattore di scala e usarlo?
Penso che sia necessario utilizzare imageOriginalSize/imageShowedSize per recuperare questo fattore di scala.
Io uso questa funzione:
float scaleFactorX = mypic.ClientSize.Width/mypic.Image.Size.Width;
float scaleFactorY = mypic.ClientSize.Height/mypic.Image.Size.Height;
È possibile utilizzare questo valore per ottenere la corretta posizione del cursore sopra l'immagine?
Suppongo di poter provare: Point cursorPosition = mypic.PointToClient (Cursor.Position); Point positionOverImage = new Point (cursorPosition.X/scaleFactorX, cursorPosition.Y/scaleFactorY) ;. Tuttavia, suppongo che ci possano essere alcuni problemi con precisione quando si calcola il fattore di zoom usando questo metodo. Ti suggerirei di ridimensionare l'immagine da solo. –
grazie, ma non funziona.posizione non è corretta, ottengo lo stesso valore quando si utilizza la posizione pointtoclient e eventmouseargs. – devilkkw
Si prega di inviare il frammento di codice calcolando le coordinate che si stanno attualmente utilizzando. –