Полностью обосновать абзацы текста в C#

Класс StringFormat делает его достаточно простым для выравнивания по левому краю, выравнивания по правому краю или центровки строки текста, но, как ни странно, он не предоставляет метода для полного обоснования строки текста (так что простирается вплоть до левого и правого полей. В этом примере показано, как вы можете полностью обосновать абзацы текста.

Следующий метод DrawParagraphs рисует абзацы с правильным выравниванием.

Этот код разбивает текст на абзацы и вызывает следующий DrawParagraph для рисования каждого из них. После того, как он рисует абзац, он сравнивает высоту оставшегося прямоугольника с размером шрифта. Если нет места для рисования текста, метод возвращается.

Этот метод разбивает абзац на слова и вводит цикл для обработки слов. Цикл продолжается до тех пор, пока метод не закончится из слов или не выйдет из пространства, чтобы нарисовать их.

Каждый раз через цикл код строит строку, добавляя больше слов, пока строка больше не будет соответствовать доступной ширине. Затем он удаляет последнее слово, чтобы строка соответствовала.

Если строка содержит все остальные слова, и если программа полностью оправдывает текст, то метод вызывает DrawLine, чтобы левая оправдала эту строку. (Когда вы полностью оправдываете текст, вы не оправдываете окончательную строку. Представьте себе, насколько странно было бы, если бы последняя строка содержала только два слова. У вас было бы первое слово в крайнем левом углу, огромное пространство, а второе слово на крайнем правом.)

Если это не конец абзаца, или программа не полностью оправдывает текст, тогда метод вызывает DrawLine, чтобы нарисовать строку с желаемым обоснованием.

В следующем коде показан метод DrawLine.

Этот метод сначала проверяет параметр justification. Если justification является Full, метод вызывает метод DrawJustifiedLine, чтобы полностью выровнять текст. См. Сообщение Полностью оправдайте строку текста в C# для информации о том, как работает этот метод.

Если justification не Full, метод делает объект StringFormat с правильным выравниванием и использует его для рисования текста. р>

Источник: http://csharphelper.com/blog/2014/10/fully-justify-paragraphs-of-text-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)

Add a Comment

Ваш e-mail не будет опубликован. Обязательные поля помечены *