Как получить полосы прокрутки на 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 пользовательский элемент управления, который вы можете поместить в форму; он дает вам полосы прокрутки и возможность масштабирования.

http://www.codeproject.com/KB/graphics/YLScsImagePanel.aspx


Я заставил его работать, также поместив picturebox внутри панели управления, я установил свойство AutoScroll панели в true, но я также установил свойство Autosize панели в True, а свойство Dock панели для заполнения (таким образом, когда пользователь изменяет размер формы - так будет панель). Для Picturebox я установил для свойства Dock значение None, а для SizeMode-Autosize (поэтому он также изменяется при изменении размера панели и формы. Он работал как шарм, Picturebox имеет полосы прокрутки и когда пользователь изменяет размер формы - все по-прежнему размещено правильно!


другое предложение-поместить picturebox внутри FlowlayoutPanel .

установите автоматическую прокрутку FlowlayoutPanel в true и установите режим размера изображения в normal

использование FlowlayoutPanel гарантирует, что изображение всегда находится на 0,0 в панели