Как нарисовать анимированный текст в C#

Обратите внимание, что результат в исполняемом файле лучше, чем результат, предоставляемый GIF справа. GIF немного отрывистый, потому что он использует только 20 кадров вместо 200, используемых программой.

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

Код сохраняет начальную высоту элемента управления PictureBox и ширину начала и окончания.

Затем он подсчитывает количество срабатываний tm> tmrResizePictureBox Timer элемента управления Tick в течение 2 секунд. Он использует это число для вычисления суммы Dx, с помощью которой программа должна увеличивать PictureBox во время каждого события Tick, чтобы контролировать конечную ширину элемента управления .

Обработчик события Load формы заканчивается с помощью метода MeasureString класса Graphics для измерения каждого из символов в строке, которую программа будет дисплей.

Когда вы нажимаете кнопку Анимация, программа использует следующий код для запуска перемещения анимированного текста.

Этот код отключает кнопку и сбрасывает ширину элемента управления PictureBox до его начального значения. Он устанавливает TicksToGo = TotalTicks, чтобы отслеживать количество раз, когда выполняется обработчик событий Tick.

В следующем коде показан обработчик события Tick таймера, который заставляет анимированный текст перемещаться.

Этот код добавляет Dx к ширине элемента управления PictureBox и соответственно изменяет размер PictureBox. Затем он уменьшает TicksToGo, и если новое значение равно 0, оно отключает таймер и включает кнопку Animate.

Программа рисует анимированный текст в обработчике событий PictureBox управления Paint. В следующем коде показан обработчик события и метод SpaceTextToFit, который он вызывает.

Обработчик событий Paint просто вызывает метод SpaceTextToFit, чтобы выполнить всю интересную работу. Единственный трюк - установить свойство TextRenderHint объекта Graphics объекта AntiAlias. Значения «grid fit» (один из них используется по умолчанию) обычно дают лучшую производительность, но беспорядок выравнивания символов в этом примере дает результат резкий внешний вид.

Метод SpaceTextToFit рисует текст, добавляя дополнительное пространство между символами для заполнения требуемой ширины. Это не делает ничего необычного с высотой текста.

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

Источник: http://csharphelper.com/blog/2016/04/draw-animated-text-in-c/

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

Add a Comment

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