Панель 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.

  • Android: как заголовок центра в ToolBar
  • Создание SearchView, который выглядит как руководство по разработке материалов
  • Как установить текст панели инструментов и цвет стрелки назад
  • как удалить тень под панелью действий с помощью AppCompat.Light.NoActionBar?
  • Изменение цвета фона отдельных элементов меню навигации
  • Панель навигации под панелью инструментов
  • В каком порядке панели наиболее эффективны с точки зрения времени и производительности?
  • Не удается уловить событие нажатия кнопки кнопки панели инструментов
  • Interesting Posts

    Force R прекратить рисовать метки сокращенной оси – например, 1e + 00 в ggplot2

    Понимание Linq To Xml – Потомки не возвращают результатов

    Что такое поле Content-Length в заголовке HTTP?

    Как подключить ПК и Mac напрямую через Wi-Fi?

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

    Как ограничить длину текста NSTextField и сохранить его всегда в верхнем регистре?

    Что такое неблокирующий или asynchronous ввод-вывод в Node.js?

    R: ggplot не работает, если он находится внутри цикла for, хотя он работает вне него

    Ubuntu 11.04 fresh install – «Входной сигнал вне диапазона» или «Режим не поддерживается …»

    Беспроводное соединение Deskjet 2540 Linux

    как я могу сделать css3 отзывчивым?

    Как реализовать PriorityBlockingQueue с помощью ThreadPoolExecutor и настраиваемых задач

    Доступ к управлению ASP.NET из статического (JS ajax-вызов)

    дата Сортировка проблемы с JQuery Tablesorter

    Разница между «@ id /» и «@ + id /» в Android

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