Программирование графики в .NET Compact Framework опирается на те же базовые приемы, что и работа с графикой для полной версии .NET Framework. Все основные классы для работы с графикой сосредоточены в пространстве имен System.Drawing. С помощью этих классов можно рисовать всевозможные фигуры, отображать линии, работать с изображениями и даже манипулировать текстом. В качестве своеобразного холста для графических опытов можно использовать поверхность формы или элементов управления. Самым главным классом является класс Graphics, который предоставляет поверхность и методы для вывода графики. Также широко используются в графике такие классы, как Pen, Brush, Color, Rectangle, Line, Image.

Класс Pen

Класс Pen используется для создания пера, при помощи которого проводятся прямые и кривые линии. В отличие от полной версии .NET Framework, поддерживающей четыре перегруженных версии конструктора Pen, .NET Compact Framework позволяет создавать перо только с помощью двух конструкторов. При вызове метода Pen(Color) создается перо указанного цвета. Конструктор Pen(Color, Single) позволяет создавать перо указанных цвета и ширины. Но второй вариант поддерживается только в .NET Compact Framework 2.0.

В листинге 6.1 приведен пример создания перьев синего и красного цветов. Затем при помощи перьев создаются две линии.

Листинг 6.1

private void Form1_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 // Синее перо толщиной 1 пиксел

 Pen bluePen = new Pen(Color.Blue);

 // Красное перо толщиной 5 пикселов

 Pen redFatPen = new Pen(Color.Red, 5);

 g.DrawLine(bluePen, 10, 10, 230, 10);

 g.DrawLine(redFatPen, 10, 20, 230, 20);

}

Класс Brush

Класс Brush является абстрактным классом для создания кистей, с помощью которых можно рисовать фигуры и текст на графической поверхности. Библиотека .NET Compact Framework поддерживает классы SolidBrush и TextureBrush. К сожалению, класс LinearGradientBrush, позволяющий рисовать красивые фигуры, в настоящее время не поддерживается.

Класс SolidBrush

При создании объекта SolidBrush нужно просто указать цвет, который будет использоваться для отображения фигур. Чтобы сменить цвет кисти, достаточно указать новый цвет в свойстве Color. В листинге 6.2 приведен код, который позволяет нарисовать зеленый круг и желтый прямоугольник.

Листинг 6.2

private void Form1_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 // Создаем кисть зеленого цвета

 SolidBrush myBrush = new SolidBrush(Color.Green);

 // Рисуем закрашенный круг

 g.FillEllipse(myBrush, 10, 30, 30, 30);

 // Меняем цвет кисти на желтый

 myBrush.Color = Color.Yellow;

 // Рисуем закрашенный прямоугольник

 g.FillRectangle(myBrush, 50, 30, 50, 25);

}

Класс TextureBrush

Класс TextureBrush позволяет создавать текстурную кисть. Подобная текстурная кисть позволяет не рисовать однородным цветом, а применять текстурное заполнение отображаемых графических примитивов. Использование подобной кисти позволяет добиваться красивых эффектов. В листинге 6.3 приведен пример использования текстурной кисти с использованием изображения, входящего в состав Windows Mobile 2003.

Листинг 6.3

private void Form1_Paint(object sender, PaintEventArgs e) {

 Graphics g = e.Graphics;

 // выбираем рисунок

 Image myImage = new Bitmap(@'Windowsalerts.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.

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату