Как нарисовать выравниваемый текст в C#
Класс StringFormat имеет свойства Alignment и LineAlignment, которые позволяют рисовать выравниваемый текст. Они позволяют указать, как вы хотите выравнивать текст по вертикали и по горизонтали. Свойство Alignment определяет горизонтальное выравнивание текста, а свойство LineAlignment определяет его вертикальное выравнивание.
Вы можете установить эти свойства в одно из значений, определяемых перечислением StringAlignment. Эти значения Near, Far и Center.
Рядом с выравнивает текст рядом с верхним или левым краем области рисования в зависимости от того, устанавливаете ли вы Alignment или LineAlignment. Дальний выравнивает текст рядом с правым или нижним краем области рисования. Как вы можете догадаться, Центр центрирует текст.
Этот метод DrawText этого примера, который показан в следующем коде, рисует некоторый выравниваемый текст в указанном прямоугольнике.
private void DrawText(Graphics gr, string text,
Rectangle rect, StringAlignment alignment)
{
gr.DrawRectangle(Pens.Blue, rect);
using (StringFormat string_format = new StringFormat())
{
// Выравнивание центра.
string_format.Alignment = alignment;
string_format.FormatFlags = StringFormatFlags.LineLimit;
string_format.Trimming = StringTrimming.Word;
gr.DrawString(text, this.Font, Brushes.Black,
rect, string_format);
}
}
Код рисует прямоугольник, чтобы вы могли видеть, где он находится. Затем он создает объект StringFormat. Поскольку класс StringFormat реализует IDisposable, код должен вызывать его метод Dispose, когда это делается с объектом. Оператор using, показанный здесь, автоматически вызывает Dispose, когда код выходит из блока using, поэтому код не должен помнить, чтобы сделать это. р>
Этот код устанавливает свойство StringFormat объекта Alignment для указания того, как должен быть выровнен нужный текст. Затем он устанавливает FormatFlags в LineLimit, поэтому текст не заканчивается строкой, усеченной вертикально. (См. Пример .) Он также устанавливает Обрезать свойство, чтобы строки текста заканчивались на границах слов, а не отображали часть слова или символа в конце. (См. Пример .)
Наконец, код вызывает метод Graphics объекта DrawString для рисования образца.
Основная программа использует следующий код для рисования трех образцов обоснованного текста, отображающих каждый из значений Alignment.
// Левое выравнивание. Rectangle rect = new Rectangle(gap, gap, wid, hgt); e.Graphics.DrawRectangle(Pens.Blue, rect); DrawText(e.Graphics, text, rect, StringAlignment.Near); // Правое выравнивание. rect.X += wid + gap; e.Graphics.DrawRectangle(Pens.Blue, rect); DrawText(e.Graphics, text, rect, StringAlignment.Far); // Выравнивание центра. rect.X += wid + gap; e.Graphics.DrawRectangle(Pens.Blue, rect); DrawText(e.Graphics, text, rect, StringAlignment.Center);
