Нарисуйте текст движущейся кистью в C#

В этом примере используется техника, аналогичная той, которая используется в примере Сделать движущийся фон в C# . Для рисования текста используется градиентная кисть.

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


Код очищает объект Graphics, а затем создает градиентную кисть. Градиент начинается со значения GradientStart и расширяется для ширины PictureBox. Это заставляет его прилипать к концам ничьей на значительную сумму.

Код устанавливает кисть WrapMode в Tile (которая по умолчанию по умолчанию). Затем он устанавливает свойства Positions и brush> кисти кисти, поэтому кисть оттеняет синие, синие, белые, синие и синие цвета. Positions заставляют кисть оставаться синим довольно близко к центру кисти, поэтому изменение от синего до белого относительно крутое.

Затем код создает шрифт и использует его вместе с кистью, чтобы нарисовать текст.

Обработчик события заканчивается, увеличивая начальную координату X кисти, завершая начальную позицию до 0, когда она достигает конца PictureBox.

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

Источник: http://csharphelper.com/blog/2015/12/fill-text-with-a-moving-color-gradient-in-c/

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

Add a Comment

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