Панель c # для рисования графики и прокрутки

Я хочу иметь возможность использовать панель или аналогичную графику для рисования на Winform. Я не вижу ничего похожего на добавление полос прокрутки, если графика становится больше, чем контроль?

Можно ли сделать это с помощью панели или есть аналогичный элемент управления, который позволит это?

Благодарю.

Установите для свойства AutoScroll значение true, а свойство AutoScrollMinSize – размер изображения. Теперь полосы прокрутки автоматически появятся, когда изображение слишком велико.

Вы захотите наследовать свой собственный class из Panel, чтобы вы могли установить для свойства DoubleBuffered значение true в конструкторе. В противном случае мерцание будет заметно. Некоторые примеры кода:

using System; using System.Drawing; using System.Windows.Forms; class ImageBox : Panel { public ImageBox() { this.AutoScroll = true; this.DoubleBuffered = true; } private Image mImage; public Image Image { get { return mImage; } set { mImage = value; if (value == null) this.AutoScrollMinSize = new Size(0, 0); else { var size = value.Size; using (var gr = this.CreateGraphics()) { size.Width = (int)(size.Width * gr.DpiX / value.HorizontalResolution); size.Height = (int)(size.Height * gr.DpiY / value.VerticalResolution); } this.AutoScrollMinSize = size; } this.Invalidate(); } } protected override void OnPaint(PaintEventArgs e) { e.Graphics.TranslateTransform(this.AutoScrollPosition.X, this.AutoScrollPosition.Y); if (mImage != null) e.Graphics.DrawImage(mImage, 0, 0); base.OnPaint(e); } } 

Я не уверен на 100%, что вы пытаетесь выполнить, но вот аналогичный вопрос SO, который может вам помочь.

Вы также можете попробовать использовать PictureBox, который вы изменили бы вручную по мере увеличения размера графики. Затем установите для вашей формы AutoScroll значение true.

  • Чат клиента смайликов окно JAVA
  • Не удается уловить событие нажатия кнопки кнопки панели инструментов
  • Как установить текст панели инструментов и цвет стрелки назад
  • как удалить тень под панелью действий с помощью AppCompat.Light.NoActionBar?
  • Создание SearchView, который выглядит как руководство по разработке материалов
  • Добавление вертикальной полосы прокрутки в AlertDialog в Android?
  • Как исправить метод getActionBar может вызвать java.lang.NullPointerException
  • Цвет выбранной вкладки в нижней навигации
  • Interesting Posts

    Hibernate – пакетное обновление возвращало неожиданный счетчик строк из обновления: 0 фактическое количество строк: 0 ожидаемых: 1

    Закрыть приложение и запустить домашний экран на Android

    Вложенные classы CSS

    Создание Pandas DataFrame из массива Numpy: как указать столбцы индекса и заголовки столбцов?

    Программно перемещаться с помощью реактивного маршрутизатора

    Что означает «атомный» в программировании?

    Что такое ошибка INSTALL_PARSE_FAILED_NO_CERTIFICATES?

    Как пакеты IP-ответа достигают своего адресата внутри частной локальной сети?

    Простой инструмент для захвата изображений для Mac OS X, который использует FireWire

    Autohotkey – Координаты движения мыши немного выключены

    Поддельный входящий звонок Android

    java.util.zip.ZipException: дубликат записи

    Ошибка обнаружения PhotoPicker: Ошибка Домен = Код PlugInKit = 13

    ASP.NET MVC 4 – для свойств коллекции моделей записей в столбцах, но foreach не

    Обратный String C ++ с использованием массива char

    Давайте будем гением компьютера.