Позвольте пользователю увеличить изображение на C#
Пример объясняет, как сделать программу, которая позволяет пользователь рисует линии в разных цветах и стилях. Эта программа позволяет пользователю отменить и повторить, сохранить и загрузить чертежи и автосохранять, чтобы он мог перезагрузить чертеж, если он сработает.
В этом примере добавлена возможность увеличения и уменьшения масштаба на чертеже.
Программа использует PictureBox внутри элемента управления Panel. PictureBox имеет фиксированный размер и не изменяет размер изображения. Панель Panel имеет AutoScroll = True, поэтому она отображает полосы прокрутки, если PictureBox слишком велика, чтобы соответствовать.
Когда вы выбираете шкалу из ComboBox на панели инструментов, программа вызывает следующий метод SetScale, чтобы установить выбранную шкалу.
// Установите масштаб и перерисовку.
private void SetScale(float picture_scale)
{
// Установите масштаб.
PictureScale = picture_scale;
// Изменение размера PictureBox.
picCanvas.ClientSize = new Size(
(int)(WorldWidth * PictureScale),
(int)(WorldHeight * PictureScale));
// Перерисовать.
picCanvas.Refresh();
}
Этот метод сохраняет новый масштаб в переменной PictureScale. Затем он изменяет размер PictureBox для этого масштаба и обновляет его, чтобы он перерисовал изображение. Когда размер PictureBox изменяется, элемент управления Panel автоматически отображает полосы прокрутки, если это необходимо.
Следующий код показывает, как PictureBox перерисовывает изображение.
// Рисуем картинку.
private void picCanvas_Paint(object sender, PaintEventArgs e)
{
// Готов.
e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
e.Graphics.Clear(Color.White);
// Масштаб.
e.Graphics.ScaleTransform(PictureScale, PictureScale);
// Привлечь.
foreach (Polyline polyline in Polylines)
{
polyline.Draw(e.Graphics);
}
}
