Создание Windows-приложений на основе Visual C#



              

Рисование в Windows-формах


Библиотека .NET Framework предоставляет чрезвычайно большой набор классов для реализации рисования в Windows-формах. Кривые Безье, текстурные кисти и перья, трансформация изображения, всевозможные виды градиентной заливки, слои, — практически все атрибуты крупного графического пакета могут быть воссозданы на одном из языков .NET Framework. Для рассмотрения этих методов и свойств потребовалась бы отдельная книга, поэтому мы ограничимся простым приложением, позволяющим рисовать линиями различного цвета и толщины. Создайте новое приложение и назовите его EasyPaint. Устанавливаем следующие значения свойств формы:

Form1, форма, свойствоЗначение
BackColorActiveCaptionText
Icon
ICO
Code\Glava6\EasyPaint\Icon\rc_bitmap.ico
TextEasyPaint

Добавляем на форму элементы управления MainMenu и ColorDialog. Создаем следующие пункты меню:

NameText
mnuFormat&Формат
mnuColor&Цвет
mnuWidth&Толщина линии

Как обычно, рисовать мы будем при удержании и перемещении левой кнопки мыши. В классе формы добавляем объекты:

//Переменная, отвечающая за включения режима рисования. //Значение true — режим включен bool DrawMode = false; //Создаем массив точек, из которых будут формироваться линии ArrayList points = new ArrayList();

Для рисования линий и кривых в библиотеки .NET Framework имеется класс Pen, экземпляр которого нам и нужно создать:

Pen mainPen;

В графических программах принято в рабочей области изменять курсор — пользователю удобнее рисовать, когда он имеет вид карандаша. Можно просто установить значение из перечисления свойства Cursor формы (рис. 6.16), но как быть, если нужен вид, не входящий в это перечисление?

Свойство Cursor формы

Рис. 6.16.  Свойство Cursor формы

Самый простой способ добавить произвольный курсор к приложению — это поместить изображение курсора (в данном случае, Pencil.cur) в папку bin\Debug приложения и в конструкторе формы указать этот курсор в качестве основного:

public Form1() { InitializeComponent(); this.Cursor = new Cursor("Pencil.cur"); mainPen = new Pen(this.ForeColor); }




Содержание  Назад  Вперед