В шаге "Шаг 180 - Коллекция изображений" мы с Вами использовали функцию DrawImage в формате:
public void DrawImage(Image, Point);
Но вариантов ее использования много. Второй ее формат
public void DrawImage(Image, Rectangle);
Позволяет отображать ее в некотором прямоугольнике, соответственно данный трюк можно использовать для масштабирование изображения. Смотрим пример.
using System; using System.Windows.Forms; using System.Collections; using System.Drawing; class MainForm : Form { public MainForm() { Text = "This is my form"; myArray = new ArrayList(); myArray.Add(Image.FromFile("D:\\net_step\\1\\Watch.jpg")); } protected override void OnPaint(PaintEventArgs pe) { Graphics g = pe.Graphics; foreach (Image i in myArray) { g.DrawImage(i,new Rectangle(1,1,10+x,10+x)); } } protected override void OnMouseDown(MouseEventArgs e) { if (e.Button==MouseButtons.Left) { x=x+50; } else { if (x>0) x=x-50; } this.Invalidate(); } public static void Main(string[] args) { Application.Run(new MainForm()); } static int x; ArrayList myArray; }
По нажатию левой кнопки масштаб увеличиваем, по нажатию правой уменьшаем. В прилагаемом проекте Вы можете испытать это способ. Данная картинка очень сильно масштабирована.