Работаю с WinForm C# и возник такой вопрос: можно ли сделать что бы кнопки в программе плавно меняли цвета по порядку как радуга? Просто открываю программу и кнопки начинают с красного цвета плавно переходить в оранжевый, потом желтый и т.д.? Такое возможно сделать в WinForm? Если да, то как?
Просто сделайте анимированное gif-изображение, типа такого:
И назначайте эту картинку кнопкам:
var bmp = new Bitmap("rainbow.gif");
button1.Image = bmp;
button2.Image = bmp;
Всё! Кнопки переливаются радугой.
Сделал, плавно меняет цвет на рандомный, вот пример того что получилось:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
timer1.Interval = 20;
timer1.Enabled = true;
}
float step = 0;
Color currentColor = Color.DarkGreen;
Color targetColor = Color.LightBlue;
Random rnd = new Random();
private void timer1_Tick(object sender, EventArgs e)
{
if (step >= 1f)
{
step = 0;
int R = rnd.Next(0, 255);
int G = rnd.Next(0, 255);
int B = rnd.Next(0, 255);
currentColor = targetColor;
targetColor = Color.FromArgb(R, G, B);
}
int mixR = (int)(currentColor.R * (1f - step) + targetColor.R * step);
int mixG = (int)(currentColor.G * (1f - step) + targetColor.G * step);
int mixB = (int)(currentColor.B * (1f - step) + targetColor.B * step);
this.BackColor = Color.FromArgb(mixR, mixG, mixB);
step += 0.03f;
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Добавляю данныеДанные добавляются, но изменения не отображаются в DataGridView
Есть статический класс HelperХочу использовать его из другой формы, однако мне приходится вызывать его через Helper
Имеется два элемента dataGridView и две таблицы в БДИз одного элемента(таблицы) нужно перенести выбранную строку в другой элемент(таблицу)
Можно ли переместить объект программно, не применяя ThicknessAnimation и подобные классы?