Книга: Программирование КПК и смартфонов на .NET Compact Framework
Графические методы
Разделы на этой странице:
Графические методы
В предыдущих примерах уже были использованы несколько методов для работы с графикой. Но сейчас следует поговорить о них более подробно. Прежде всего нужно помнить, что для работы с графическими методами необходимо сначала создать объект 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(@"windowsbanner.gif");
Rectangle portion = new Rectangle(1, 1, 150, 25);
g.DrawImage(myBMP, 20, 220, portion, GraphicsUnit.Pixel);
Метод FillRectangle
уже применялся при рассмотрении кистей. Метод DrawRectangle
использует перо вместо кисти, поэтому на экран выводится незакрашенный прямоугольник.
Чтобы нарисовать достаточно сложную фигуру, можно задать массив точек и соединить их прямыми отрезками, после чего можно закрасить получившуюся фигуру. Для этого разработчик может использовать методы DrawPolygon
и FillPolygon
. В листинге 6.14 приведен код, который позволяет нарисовать простой ромб по указанным точкам.
Листинг 6.14
// Нарисуем ромб
// Зададим массив точек
Point[] arrPoint = {
new Point(150, 50),
new Point(200, 100),
new Point(150, 150),
new Point(100, 100),
new Point(150, 50),
};
g.DrawPolygon(bluePen, arrPoint);
Если все рассмотренные ранее методы объединить в одно приложение и затем запустить его, то на экране устройства будет отображено несколько графических образов, как показано на рис. 6.1.
Рис. 6.1. Основные приемы работы с графикой
- Классы для программирования графики
- Класс Pen
- Класс Brush
- Класс SolidBrush
- Класс TextureBrush
- Класс Color
- Класс Font
- Класс Icon
- Класс Bitmap
- Структура Point
- Структура Rectangle
- Графические методы
- Создание собственных методов DrawPie и FillPie
- Создание фонового рисунка для формы
- Копирование рисунка
- Поддержка прозрачности
- Округленные прямоугольники
- Создание экранных снимков
- Метод Lockbits
- Графический редактор
- Дополнительные материалы
- 1.2. Создание изображений. Графические примитивы
- Практическая работа 41. Графические объекты в документах Word
- Библиографические замечания
- Базовые криптографические механизмы сервисов безопасности PKI
- 5.1.11. Графические объекты
- Простые графические шаблоны
- 5. Графические редакторы
- Глава 21 Графические возможности GDI+
- Глава 12. Графические интерфейсы для Ruby
- Глава 17 Графические возможности
- Криптографические сервисы
- 3. Четыре легких способа взяться за дело Персональная визуализация, салфетки и флипчарты, графические шаблоны, или Как с...