Сделайте движущийся фон в C#

В этом примере отображается текст с движущимся цветовым градиентом. Следующий ShadeRect метод содержит наиболее интересный код программы.

Этот метод заполняет PictureBox программой линейную градиентную кисть, которая начинается с xmin и заканчивается на xmax. Код создает кисть, указывая, что она должна начинаться с точки (xmin, 0) и заканчиваться в точке (xmax, 0). Щетка первоначально оттеняет от красного до красного.

Внутри блока с использованием код устанавливает свойство WrapMode кисти> Tile. (На самом деле это значение по умолчанию, поэтому вы можете опустить этот оператор, если хотите. Я ввел его для ясности.) Это значение заставляет кисть повторять, если необходимо, заполнять все заполненные области. В этом примере кисть повторяется по ширине PictureBox независимо от того, где начинается и останавливается определение кисти.

Затем создайте новый объект ColorBlend, чтобы определить, как цвета смешиваются по заполненной области. Он устанавливает свойства Colors и Positions, поэтому оттенки кисти от красного (на левом краю) до белого (посередине) и обратно до красного (на правом краю) .

Наконец, код устанавливает свойство щетки InterpolationColors в ColorBlend, а затем заполняет его PictureBox.

Форма программы содержит Timer. Его обработчик событий Tick обновляет PictureBox, чтобы выполнить обработчик события Paint.

Этот обработчик событий получает ширину объекта PictureBox. Затем он вызывает ShadeRect, чтобы заполнить PictureBox. Он начинает градиент со значением GradientStart и делает его таким же широким, как PictureBox. Поскольку кисть имеет WrapMode, установленную в Tile, она повторяется по мере необходимости, чтобы заполнить любой из PictureBox слева от начала кисти.

Далее код добавляет Delta в GradientStart, чтобы начать градиент немного сдвинуться вправо. Если GradientStart больше ширины PictureBox, программа сбрасывает ее на 0, чтобы она начиналась.

Код заканчивается путем рисования текста «Moving Gradient» в середине PictureBox.

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

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

Add a Comment

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