Переливание кнопки c#

365
04 июня 2017, 17:27

Работаю с WinForm C# и возник такой вопрос: можно ли сделать что бы кнопки в программе плавно меняли цвета по порядку как радуга? Просто открываю программу и кнопки начинают с красного цвета плавно переходить в оранжевый, потом желтый и т.д.? Такое возможно сделать в WinForm? Если да, то как?

Answer 1

Просто сделайте анимированное gif-изображение, типа такого:

И назначайте эту картинку кнопкам:

var bmp = new Bitmap("rainbow.gif");
button1.Image = bmp;
button2.Image = bmp;

Всё! Кнопки переливаются радугой.

Answer 2

Сделал, плавно меняет цвет на рандомный, вот пример того что получилось:

 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;
        }
    }
READ ALSO
Обновление DataGridView в C#

Обновление DataGridView в C#

Добавляю данныеДанные добавляются, но изменения не отображаются в DataGridView

573
Как сделать using для статического класса

Как сделать using для статического класса

Есть статический класс HelperХочу использовать его из другой формы, однако мне приходится вызывать его через Helper

174
Не обновляется элемент dataGridView после запроса INSERT INTO

Не обновляется элемент dataGridView после запроса INSERT INTO

Имеется два элемента dataGridView и две таблицы в БДИз одного элемента(таблицы) нужно перенести выбранную строку в другой элемент(таблицу)

262
Переместить объект в окне программно WPF

Переместить объект в окне программно WPF

Можно ли переместить объект программно, не применяя ThicknessAnimation и подобные классы?

236