Как я могу получить полосы прокрутки на Picturebox - PullRequest
60 голосов
/ 17 января 2011

У меня PictureBox picture.

Я использую:

picture.Size = bmp.Size;
picture.Image = bmp;

Допустим, есть два целых числа maxWidth и maxHeigth.
Я хочу добавить вертикаль /горизонтальная полоса прокрутки до picture, когда ее размер превышает maxWidth и / или maxHeight.Как я могу это сделать?

Ответы [ 4 ]

127 голосов
/ 17 января 2011

Вы можете легко сделать это с помощью Panel Control

Вставить панель в форму, скажем panel1 и установить

panel1.AutoScroll = true;

Вставить PictureBox на Panel, произнесите картинку и установите

picture.SizeMode = PictureBoxSizeMode.AutoSize;

и установите изображение

picture.Image = bmp;

надеюсь, это поможет

4 голосов
/ 17 января 2011

Вот проект, в котором парень создал пользовательский элемент управления ImagePanel, который вы можете перетащить в форму;это дает вам полосы прокрутки и возможность масштабирования.

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

1 голос
/ 21 июня 2016

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

0 голосов
/ 13 апреля 2016

Другое предложение заключается в том, чтобы поместить картинку-коробку внутри панели Flowlayout.

Установите автоматическую прокрутку панели Flowlayout на true и установите для режима размера изображения нормальный

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

...