J'ai une application qui affiche une image à l'intérieur d'un contrôle Windows Forms PictureBox
. Le SizeMode
du contrôle est défini sur Zoom
de sorte que l'image contenue dans le PictureBox
sera affichée d'une manière correcte d'aspect quelles que soient les dimensions du PictureBox
.Comment convertir les coordonnées de l'espace écran en coordonnées de l'espace image dans un PictureFox WinForms?
Ceci est idéal pour l'aspect visuel de l'application, car vous pouvez dimensionner la fenêtre comme vous le souhaitez et l'image sera toujours affichée en utilisant son meilleur ajustement. Malheureusement, je dois aussi gérer les événements de clic de la souris sur la zone d'image et avoir besoin de pouvoir traduire les coordonnées de l'espace de l'écran en coordonnées de l'espace image. Il semble qu'il soit facile de traduire de l'espace écran pour contrôler l'espace, mais je ne vois pas de moyen évident de traduire de l'espace de contrôle à l'espace image (ie la coordonnée de pixel dans l'image source qui a été mise à l'échelle dans le Boîte d'image).
Existe-t-il un moyen facile de le faire, ou devrais-je juste reproduire les mathématiques de mise à l'échelle qu'ils utilisent en interne pour positionner l'image et faire la traduction moi-même?
Salut, ce serait génial de voir un échantillon du code que vous avez mis ensemble si vous l'avez toujours à portée de main. –
Bien sûr, je l'ai édité dans ma réponse – fastcall