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