- •План лекции
- •Передача информации между
- •Передача информации между
- •Передача информации между
- •Класс Graphics
- •Методы класса Graphics
- •Класс Pen. Класс Brush
- •Пример проекта
- •Пример проекта
- •Пример. Кривые Безье. Окно формы
- •Пример. Паутина Безье
- •Пример. Паутина Безье
- •Пример. Паутина Безье
- •Пример. Паутина Безье
- •Пример. Событие Paint
- •Пример. Кривые Безье. Окно формы
- •Пример. Рисование кистью
- •Пример. Рисование кистью
- •Пример. Рисование кистью
- •Пример. Рисование кистью
- •Пример. Рисование кистью
- •Пример. Рисование кистью
- •Пример. Рисование кистью
- •Пример. Рисование кистью
- •Пример. Рисование кистью
- •Вопросы
- •План лекции
С#. Windows Applications
04. C#. Windows Applications
План лекции
Типы проектов
Организация интерфейса
Форма и элементы управления
Взаимодействие форм
Рисование в форме
Класс Graphics
Методы класса Graphics
Пример проекта
04. C#. Windows Applications |
2 |
04. C#. Windows Applications |
3 |
Передача информации между
формами
Представим себе, что несколько форм должны работать с объектом класса Books. Пусть в главной форме такой объект объявлен:
public Books myBooks;
В конструкторе главной формы такой объект создается:
myBooks = new Books(max_books);
где max_books - заданная константа. Пусть еще в главной форме объявлена форма - объект класса NewBook:
public NewBook form2;
04. C#. Windows Applications |
4 |
Передача информации между
формами
При создании объекта form2 его конструктору передается ссылка на главную форму:
form2 = new NewBook(this);
Класс NewBook содержит поля:
private Form1 mainform; private Books books;
а его конструктор следующий код:
mainform = form;
books = mainform.myBooks;
04. C#. Windows Applications |
5 |
Передача информации между
формами
Теперь объекту form2 доступны ранее созданные объекты, задающие книги и главную форму, так что в обработчике события Closed, возникающего при закрытии формы, можно задать код:
private void NewBook_Closed(object sender, System.EventArgs e)
{
mainform.Show();
}
открывающий главную форму.
04. C#. Windows Applications |
6 |
Класс Graphics
При рисовании в формах можно объявить в форме поле, описывающее объект класса Graphics:
Graphics graph;
а в конструкторе формы произвести связывание с реальным объектом: graph = CreateGraphics();
Затем всюду в программе, где нужно работать с графикой, используется глобальный для формы объект graph и его методы. Есть другой способ получения этого объекта - обработчики некоторых событий получают объект класса Graphics среди передаваемых им аргументов. Например, в обработчике события Paint, занимающегося перерисовкой, этот объект можно получить так:
protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)
{
Graphics gr = e.Graphics;
//перерисовка, использующая методы объекта gr
}
04. C#. Windows Applications |
7 |
Методы класса Graphics
Для рисования важны три группы методов:
DrawString;
Draw - DrawEllipse, DrawLine, DrawArc и др.;
Fill - FillEllipse, FillPie, FillRectangle и др.;
04. C#. Windows Applications |
8 |
Класс Pen. Класс Brush
Класс Brush является абстрактным классом, так что создавать кисти этого класса нельзя, но можно создавать кисти классов-потомков Brush.
Таких классов пять - они задают кисть:
SolidBrush - для сплошной закраски области заданным цветом;
TextureBrush - для закраски области заданной картинкой (image);
HatchBrush - для закраски области предопределенным узором;
LinearGradientBrush - для сплошной закраски с переходом от одного цвета к другому, где изменение оттенков задается линейным градиентом;
PathGradientBrush - для сплошной закраски с переходом от одного цвета к другому, где изменение оттенков задается более сложным путем.
Первые два класса кистей находятся в пространстве имен
System.Drawing, остальные - в System.Drawing.Drawing2D.
04. C#. Windows Applications |
9 |
Пример проекта
Построим проект для рисования в формах. В одной из форм будем рисовать пером, в другом - кистями различного типа. Главную форму сделаем простой кнопочной формой. Вот как она выглядит.
04. C#. Windows Applications |
10 |
Пример проекта
Построим проект для рисования в формах. В одной из форм будем рисовать пером, в другом - кистями различного типа. Главную форму сделаем простой кнопочной формой. Вот как она выглядит.
Выбор соответствующей командной кнопки
04. C#. Windows Applications |
11 |