Как показать полосы прокрутки в элементе управления PictureBox?

Иногда у меня есть картинка, позволяющая говорить 100x100. Но изображение, которое будет отображаться, на самом деле составляет 100x400.

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

Я не мог найти полосу прокрутки в панели инструментов, поэтому, я думаю, мне нужно ее закодировать. Но как? И я все еще задаюсь вопросом, не ошиблась ли я и не увидела полосу прокрутки в панели инструментов. Мои извинения тогда: (

Ответ 1

Я предполагаю, что вы можете добавить отдельные элементы управления прокруткой и синхронизировать их события Scroll со смещением, на котором рисуется изображение в PictureBox, но это похоже на фактическую работу. Там лучший способ.

  • Добавьте элемент Panel в свою форму и установите для свойства AutoScroll значение "True" .. приведет к тому, что элемент управления автоматически отобразит полосы прокрутки, когда он содержит контент, который находится за пределами его видимых в настоящее время границ..NET Framework позаботится обо всем для вас под обложками, без необходимости писать одну строку кода.

  • Перетащите элемент управления PictureBox внутри элемента управления Panel, который вы только что добавили. Элемент управления Panel затем обнаружит, что один из его дочерних элементов управления больше, чем его видимую область и показывать полосы прокрутки, благодаря свойству AutoScroll. Когда пользователь перемещает полосы прокрутки, часть изображения в видимом PictureBox будет автоматически изменена. Магия.

(Причина, по которой вы должны использовать элемент управления Panel в качестве контейнера, состоит в том, что PictureBox не наследуется непосредственно из базового класса ScrollableControl, который является тем, что предоставляет свойство AutoScroll.)

Ответ 2

Я пробовал это, и он работал хорошо. Но я заметил, что если фотокамера закреплена на панели, то в окне изображения автоматически устанавливается размер родительской панели и не может быть установлен больше (по крайней мере, так или иначе не найден). Это нарушает цель техники. Итак - поместите фотобазу на панель, но не прикрепите ее, и она будет работать отлично.

Ответ 3

В окне изображения нет автоматических полос прокрутки, но вы можете добавить элемент управления VScrollBar (и HScrollBar) в форму и обработать прокрутку изображения вручную, перерисовывая его на другом смещении каждый раз при запуске события прокрутки.