Методы вывода текста

Методы рисования

В классе Graphics имеются следующие три основные группы методов рисования: 1) методы рисование текста; 2) методы рисование линий и 3) методы рисование и заполнения фигур.

Для вывода текста на экран относительной левой верхней точки (рис. 8.17) можно использовать следующтий метод:

DrawString(string str, Font fn, Brush br,

float x, float y)

 

 

 


Для вывода текста в заданном прямоугольнике (рис. 8.18) можно использовать следующий метод:

DrawString(string str, Font fn, Brush br,

RectangleF ptf, StringFormat sf)

 

Параметрами данных методов являются:

Ÿ str – выводимая строка текста (константа или объект класса string);

Ÿ fnt – используемый фонт (объект класса Font);

Ÿ br – используемая кисть (объект класса Brush);

Ÿ x и y – координаты левого верхнего угла области вывода;

Ÿ sf – объект типа StringFormat, который описывает расположение строки в заданной прямоугольной области; в данной структуре есть два свойства: sf.Alignment – положение по горизонтали (значения перечисления StringAlignment: Near (слева), Center (по центру), Far (справа) и свойство LineAlignment – положение вертикали (значения перечисления StringAlignment: Near (сверху), Center (по центру), Far (снизу).

 

Например:

StringFormat sf = new StringFormat();

sf.LineAlignment = StringAlignment.Center;

sf.Alignment = StringAlignment.Center;

gfx.DrawString("Вывод текста", fnt, Brushes.Blue,

new RectangleF(0, 0, 200, 100), sf);

В программе часто нужно определять размер области, занимаемый выводимым текстом. Это можно сделать с помощью метода MeasureString(string, Font) класса Graphics. Например:

Sizef s = gfx.MeasureString(str, Font);

 

Для рисования текста под углом вначале необходимо перенести начало координат в левыйверхний угол области вывода, выполнить поворот на заданный угол и только затем выполнить вывод текста. Например:

// Перенос системы кооординат

float x = 50f, y = 200f;

gfx.TranslateTransform(x, y);

//Поворот системы кооординат

gfx.RotateTransform(-45);

//Вывод текста

gfx.DrawString("Вывод под 45 градусов", fnt, Brushes.Black, 50,200);