Чтение онлайн

на главную - закладки

Жанры

Программирование КПК и смартфонов на .NET Compact Framework

Климов Александр Петрович

Шрифт:

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.

Листинг 6.9

Graphics g = this.CreateGraphics;

Метод

FromImage
создает новый объект
Graphics
из заданного объекта
Image
. При помощи этого метода можно изменять существующее изображение или создавать новое изображение. Причем обработанное изображение можно потом сохранить в графическом файле. Использование метода иллюстрирует код, приведенный в листинге 6.10.

Листинг 6.10

Bitmap bmp = new Bitmap(150, 90);

Graphics g = Graphics.FromImage(bmp);

Метод

OnPaint
класса
Form
получает в качестве параметра объект
PaintEventArgs
. Одним из членов данного объекта является объект
Graphics
, связанный с формой. Переопределяя метод
OnPaint
класса
Form
, можно получить доступ к объекту
Graphics
из параметра
PaintEventArgs
, после чего можно работать с графикой в клиентской области формы. Вызов этого метода показан в листинге 6.11.

Листинг 6.11

Protected override void OnPaint(PaintEventArgs e) {

 Graphics g = e.Graphics;

}

Получив любым из перечисленных способов доступ к объекту

Graphics
, программист может рисовать фигуры, линии, кривые, изображения и текст при помощи различных методов. Самые распространенные графические методы будут рассмотрены в этом разделе главы.

Метод

DrawImage
рисует заданный объект
Image
в указанной позиции экрана. Всего существует четыре перегруженные версии метода. Но в самой простой его версии достаточно указать координаты выводимой картинки, как показано в листинге 6.12.

Листинг 6.12

g.DrawImage(myImage, 10, 10);

С помощью метода

DrawImage
можно выводить на экран не все изображение, а только его часть. В этом случае надо указать размеры прямоугольника, который определяет размеры выводимой области картинки, как показано в листинге 6.13. В примере используется перечисление
GraphicsUnit.Pixel
, которое позволяет указывать единицы измерения.

Листинг 6.13

Bitmap myBMP = new Bitmap(@"\windows\banner.gif");

Поделиться:
Популярные книги

Дракон - не подарок

Суббота Светлана
2. Королевская академия Драко
Фантастика:
фэнтези
6.74
рейтинг книги
Дракон - не подарок

Бастард Императора. Том 8

Орлов Андрей Юрьевич
8. Бастард Императора
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Бастард Императора. Том 8

Чужая дочь

Зика Натаэль
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Чужая дочь

Эра Мангуста. Том 2

Третьяков Андрей
2. Рос: Мангуст
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Эра Мангуста. Том 2

Идеальный мир для Лекаря 14

Сапфир Олег
14. Лекарь
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 14

Один на миллион. Трилогия

Земляной Андрей Борисович
Один на миллион
Фантастика:
боевая фантастика
8.95
рейтинг книги
Один на миллион. Трилогия

Помещицы из будущего

Порохня Анна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Помещицы из будущего

Шлейф сандала

Лерн Анна
Фантастика:
фэнтези
6.00
рейтинг книги
Шлейф сандала

Черный маг императора 2

Герда Александр
2. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
6.00
рейтинг книги
Черный маг императора 2

Император

Рави Ивар
7. Прометей
Фантастика:
фэнтези
7.11
рейтинг книги
Император

Бандит 2

Щепетнов Евгений Владимирович
2. Петр Синельников
Фантастика:
боевая фантастика
5.73
рейтинг книги
Бандит 2

На границе империй. Том 9. Часть 2

INDIGO
15. Фортуна дама переменчивая
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 9. Часть 2

Князь Серединного мира

Земляной Андрей Борисович
4. Страж
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Князь Серединного мира

Чайлдфри

Тоцка Тала
Любовные романы:
современные любовные романы
6.51
рейтинг книги
Чайлдфри