Получение фактического левого верхнего угла изображения в более крупном PictureBox (C# Windows Forms)

У меня есть PictureBox в моей форме Windows. Режим изображения установлен на Center Image и выглядит следующим образом:

введите здесь описание изображения

Зеленый прямоугольник показывает фактический размер PictureBox, а синий прямоугольник показывает, как изображение отображается из-за режима Center Image (именно так, как я этого хочу).

Мой вопрос: как мне получить позицию на изображении (так, в синем поле), где маленький красный прямоугольник представляет (0,0)?

Спасибо,

Льюис


person Lewis Wilcock    schedule 31.01.2016    source источник


Ответы (1)


Вы должны быть в состоянии попасть в пиксель, вычислив его:

int x = (pictureBox1.Width - pictureBox1.Image.Width) / 2;
int y = (pictureBox1.Height - pictureBox1.Image.Height) / 2;
person Steve Wellens    schedule 31.01.2016
comment
+1 для самого прямого маршрута (я думаю), я бы только отметил, что это, очевидно, работает правильно только до тех пор, пока CenterImage используется для уверенности (избегает необходимости устанавливать положение изображения в кадре). - person blins; 31.01.2016