1 / 11

Графика в WinForms

Лекция. Графика в WinForms. Рисование в WinForms. Поверхность рисования - объект Graphics Control.CreateGraphics () Инструменты рисования Pen Brush Графические примитивы Line Rectangle Ellipse Image Text. Draw… Fill…. Класс Color.

mayes
Download Presentation

Графика в WinForms

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Лекция Графика в WinForms

  2. Рисование в WinForms • Поверхность рисования - объект Graphics Control.CreateGraphics() • Инструменты рисования Pen Brush • Графические примитивы Line Rectangle Ellipse Image Text Draw… Fill…

  3. Класс Color publicstaticColorFromArgb(intargb); publicstaticColorFromArgb(int alpha, ColorbaseColor); publicstaticColorFromArgb(int red, int green, int blue); publicstaticColorFromArgb(int a, int r, int g, int b); publicstaticColorFromName(string name);

  4. Класс Pen public Pen(Brushbrush); public Pen(Colorcolor); public Pen(Brushbrush, float width); public Pen(Colorcolor, float width);

  5. Класс Brush System.Drawing.Brush      System.Drawing.Drawing2D.HatchBrush      System.Drawing.Drawing2D.LinearGradientBrush      System.Drawing.Drawing2D.PathGradientBrushSystem.Drawing.SolidBrushSystem.Drawing.TextureBrush

  6. Нарисовать что-то на чем-нибудь 1-й способ. • Получить объект Graphics. • Приготовить инструмент. • Вызвать метод рисования. 2-й способ. Сделать то же в обработчике события Paint.

  7. Рисование мышью Обработать события MouseDown, MouseMove, MouseUp boolisDrawing;// флаг рисования (true– идет отрисовка) Point last; // последняя нарисованная точка privatevoid panel1_MouseDown(object sender, MouseEventArgs e) { isDrawing = true; last = e.Location; } privatevoid panel1_MouseMove(object sender, MouseEventArgs e) { if (isDrawing) { Graphics g = panel1.CreateGraphics(); g.DrawLine(Pens.Blue, last, e.Location); last = e.Location; // comment it! } } privatevoid panel1_MouseUp(object sender, MouseEventArgs e) { isDrawing = false; }

  8. Обработка события Paint List<Point> points = newList<Point>(); boolisDrawing; privatevoid panel1_MouseDown(object sender, MouseEventArgs e) { points = newList<Point>(); points.Add(e.Location); isDrawing = true; } privatevoid panel1_MouseMove(object sender, MouseEventArgs e) { if (isDrawing){ points.Add(e.Location); Graphics g = panel1.CreateGraphics(); for (inti = 0; i < points.Count - 1; i++) g.DrawLine(Pens.Blue, points[i], points[i + 1]); } } privatevoid panel1_MouseUp(object sender, MouseEventArgs e) { isDrawing = false; } privatevoid panel1_Paint(object sender, PaintEventArgs e) { for(inti = 0; i < points.Count - 1; i++) e.Graphics.DrawLine(Pens.Blue, points[i], points[i + 1]); }

  9. Рисование модели Picture – коллекция линий Line – коллекция точек classPicture { List<Line> lines = newList<Line>(); publicboolIsDrawing {set; get;} internalvoid Add(Lineline) { lines.Add(line); } internalvoidAddPoint(Pointpoint) { Line last = lines[lines.Count - 1]; last.AddPoint(point); } internalvoid Draw(Graphics g) { foreach (var line in lines) line.Draw(g); } } classLine { List<Point> points; public Line(Point p) { points = newList<Point>(); points.Add(p); } publicvoidAddPoint(Point p) { points.Add(p); } internalvoid Draw(Graphics g) { g.DrawLines(Pens.Blue, points.ToArray()); } }

  10. Графический редактор Figure – абстрактная фигура Picture – коллекция фигур Фигура – линия, прямоугольник, эллипс Выбрать тип фигуры Начать рисование фигуры Добавить точку к фигуре Закончить рисование фигуры Выбрать цвет линии Выбрать цвет заливки Сохранить рисунок в файле Восстановить из файла Представление

  11. Самостоятельно • Написать программу “Графический редактор”, которая позволяет: • рисовать при помощи кривых, отрезков, прямоугольников и эллипсов; • выбирать цвет контура и заливки; • сохранять и загружать сделанные в редакторе рисунки из файлов.

More Related