У меня есть приложение, которое отображает изображение внутри PictureBox
элемента управления Windows Forms. SizeMode
элемента управления устанавливается в Zoom
, так что изображение, содержащееся в PictureBox
, будет отображаться с правильным соотношением сторон независимо от размеров PictureBox
.
Это отлично подходит для внешнего вида приложения, потому что вы можете изменять размер окна, как хотите, и изображение всегда будет отображаться в наиболее подходящем для него размере. К сожалению, мне также нужно обрабатывать события щелчка мышью в графическом блоке, и мне нужно иметь возможность переводить из координат экранного пространства в координаты пространства изображения.
Похоже, что легко перевести из пространства экрана в пространство управления, но я не вижу очевидного способа перевода из пространства управления в пространство изображения (то есть координаты пикселя в исходном изображении, которое было масштабировано в поле изображения).
Есть ли простой способ сделать это, или я должен просто продублировать математику масштабирования, которую они используют внутри, чтобы расположить изображение и сделать перевод самостоятельно?