Климов Александр Петрович
Шрифт:
Graphics g = e.Graphics;
// выбираем рисунок
Image myImage = new Bitmap(@"\Windows\alerts.bmp");
// создаем текстурную кисть TextureBrush
texture = new TextureBrush(myImage);
// Рисуем эллипс, заполненный рисунком
g.FillEllipse(texture, 10, 60, 120, 120);
g.Dispose;
}
ВНИМАНИЕ
Такие свойства класса TextureBrush, как Transform и WrapMode, не поддерживаются в .NET Compact Framework 2.0.
Класс Color
При создании перьев или кистей применялся класс
Color
. Он позволяет задавать цвет либо с помощью предопределенного названия, либо указывая составные части цвета в модели RGB. Например, для создания красного цвета можно использовать код, приведенный в листинге 6.4. Листинг 6.4
// красный цвет по названию
Color redColor = Color.Red;
// красный цвет из компонентов RGB
Color redColor2 = Color.FromArgb(255, 0, 0);
// Выводим на экран две красные линии
g.DrawLine(new Pen(redColor), 10, 190, 100, 190);
g.DrawLine(new Pen(redColor2), 10, 195, 100, 195);
Класс Font
Класс
Font
используется для вывода текста. Как ни странно, вывод текстовой информации тоже является графической операцией, что немного смущает новичков. Из четырнадцати возможных перезагруженных версий конструктора класса в .NET Compact Framework доступно только три. Для создания объекта Font
нужно определить семейство шрифтов, размер символов и стиль начертания. Пример использования шрифта приведен в листинге 6.5. Листинг 6.5
Font myFont = new Font("Tahoma", 9, FontStyle.Italic);
g.DrawString("Карманный компьютер", myFont, myBrush, 14, 200);
Класс Icon
Объект
Icon
используется методом DrawIcon
для отображения пиктограмм. Предположим, что необходимо использовать пиктограмму, хранящуюся в ресурсах программы. В таком случае понадобится код, приведенный в листинге 6.6. Листинг 6.6
Icon myIcon = new Icon(Assembly.GetExecutingAssembly.
GetManifestResourceStream("MyApp.Icon.ico"));
Класс Bitmap
Класс
Bitmap
предназначен для работы с растровыми изображениями. Программист может загрузить картинку в объект Bitmap
из потока Stream
, скопировать из существующего объекта Bitmap
или загрузить из файла. Также можно создать новый пустой объект Bitmap
, указав только размеры картинки. Ранее класс Bitmap
уже использовался при создании текстурной кисти. Но при этом применялся родственный объект Image
. В листинге 6.7 приведен новый вариант создания кисти. Листинг 6.7
// выбираем рисунок
Bitmap myImage = new Bitmap(@"\Windows\alerts.bmp");
// создаем текстурную кисть
TextureBrush texture = new TextureBrush(myImage);
Структура Point
Структура
Point
содержит координаты X и Y для указания расположения некоей точки. В библиотеке .NET Compact Framework поддерживается только один конструктор для создания объекта Point
, в котором указываются эти координаты. Структура Point
часто используется в методах DrawPolygon
и FillPolygon
, которые будут рассматриваться позже. Структура Rectangle
Структура
Rectangle
определяет размер и расположение прямоугольника. В мобильной версии используется только один конструктор, определяющий прямоугольник по координатам левого верхнего угла, ширине и высоте, что иллюстрирует код, приведенный в листинге 6.8. Листинг 6.8
Rectangle myRectangle = new Rectangled(10, 10, 70, 210);
Графические методы
В предыдущих примерах уже были использованы несколько методов для работы с графикой. Но сейчас следует поговорить о них более подробно. Прежде всего нужно помнить, что для работы с графическими методами необходимо сначала создать объект
Graphics
. Существует несколько способов получения объекта Graphics
, и они будут рассматриваться достаточно подробно Метод
CreateGraphics
формы или элемента управления позволяет получить объект Graphics
, предоставляющий возможность рисовать на форме или элементе управления. Этот метод демонстрируется в листинге 6.9.