Позвольте пользователю увеличить изображение на 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); } }