Прокрутка панели программно - PullRequest
0 голосов
/ 20 октября 2019

Внутри панели есть PictureBox. SizeMode для PictureBox был установлен следующим образом:

 pcbImage.SizeMode = PictureBoxSizeMode.AutoSize;

Свойство PictureBox Image имеет загруженное растровое изображение, которое изначально имеет такую ​​же ширину / высоту панели. Расположение PictureBox (0, 0).

Когда я нажимаю кнопку ZoomIn, я удваиваю размер изображения и - правильно - Panel позволяет прокручивать его по вертикали и горизонтали.

ЧтоЯ пытаюсь сделать, это программно расположить вертикальную и горизонтальную полосы прокрутки, чтобы центр изображения всегда отображался после увеличения.

Я видел здесь, в SO, что я могу играть со свойством AutoScrollPosition объектаПанель. Дело в том, что если я сделаю что-то подобное, например:

pnlImage.AutoScrollPosition = new Point(pcbImage.Image.Width / 2, pcbImage.Image.Height / 2);

... свойство DisplayRectangle Panel изменится на отрицательные значения. В результате при прокрутке назад к исходной позиции (слева для прокрутки H и вверху для прокрутки V) появляется область без изображения.

...