Как получить полосы прокрутки на Picturebox
Я PictureBox picture
.
Я использую:
picture.Size = bmp.Size;
picture.Image = bmp;
допустим есть два числа maxWidth
и maxHeigth
.
Я хочу добавить вертикальную / горизонтальную полосу прокрутки в picture
, когда его размер превышает maxWidth
и/или maxHeight
. Как я могу это сделать?
4 ответов
вы можете легко сделать это с помощью Panel
управления
вставьте панель в форму, скажите panel1 и установите
panel1.AutoScroll = true;
вставить PictureBox
до Panel
, скажите изображение и установите
picture.SizeMode = PictureBoxSizeMode.AutoSize;
и установите изображение
picture.Image = bmp;
надеюсь, что это помогает
вот проект, где парень построил ImagePanel
пользовательский элемент управления, который вы можете поместить в форму; он дает вам полосы прокрутки и возможность масштабирования.
Я заставил его работать, также поместив picturebox внутри панели управления, я установил свойство AutoScroll панели в true, но я также установил свойство Autosize панели в True, а свойство Dock панели для заполнения (таким образом, когда пользователь изменяет размер формы - так будет панель). Для Picturebox я установил для свойства Dock значение None, а для SizeMode-Autosize (поэтому он также изменяется при изменении размера панели и формы. Он работал как шарм, Picturebox имеет полосы прокрутки и когда пользователь изменяет размер формы - все по-прежнему размещено правильно!
другое предложение-поместить picturebox внутри FlowlayoutPanel .
установите автоматическую прокрутку FlowlayoutPanel в true и установите режим размера изображения в normal
использование FlowlayoutPanel гарантирует, что изображение всегда находится на 0,0 в панели