Добавить
Уведомления

# 22 Уроки C# – Прозрачность контролов WinForms – плавное появление текста в C# – controls opacity

00:00 Введение и проблема • Обсуждение проблемы прозрачности контролов в Windows Forms. • Упоминание свойства opacity формы, которое не применимо к контролам. • Цель видео: показать, как решить проблему прозрачности контролов. 00:51 Идея решения • Пример вопроса от зрителя о плавном появлении элементов. • Решение проблемы без использования WPF, собственными силами. • Подчёркивание важности фантазии и применения знаний. 02:47 Подготовка к реализации • Выбор цветов для формы и контрола: стиль блю и лайт скай блю. • Создание появляющейся строки для демонстрации эффекта. • План: изменение цвета контрола в цикле без использования opacity. 04:38 Работа с RGB • Объяснение системы RGB: красный, зелёный, синий. • Использование пипетки для получения значений RGB. • Пример работы с цветами в программе FastStone Capture. 06:13 Определение начальных и желаемых цветов • Определение начального цвета стиль блю: 70, 130, 180. • Определение желаемого цвета лайт скай блю: 135, 206, 250. • Проверка работы системы RGB для записи цвета в лейбл. 07:49 Использование директив и RGB в коде • Объяснение использования директив для работы с цветами. • Пример записи цвета в лейбл с использованием RGB: `label1.ForeColor = RGB(128, 255, 255)`. • Экспериментирование с различными комбинациями RGB для получения желаемого цвета. 08:44 Заключение • Подчёркивание возможности смешивания цветов через RGB. • Демонстрация различных результатов при изменении значений RGB. • Подтверждение возможности создания плавного перехода цвета без использования opacity. 09:44 Введение в цикл • Объяснение структуры цикла `for`. • Использование переменных для записи цветов в цикле. • Создание переменных `r`, `g`, `b` типа `byte` для работы с цветами RGB. 10:37 Объявление начальных значений • Объявление начальных значений для `r`, `g` и `b`: `r = 70`, `g = 130`, `b = 180`. • Упрощение кода за счёт использования типов `byte` вместо `int`. 11:35 Условия для цикла • Проверка условий для выполнения цикла: `r ﹤ 135`, `g ﹤ 206`, `b ﹤ 250`. • Запись начального цвета в `RGB` при выполнении условий. 14:21 Инкремент и пауза • Добавление паузы в 100 миллисекунд для анимации. • Инкремент значений `r`, `g`, `b` на 10: `r += 10`, `g += 10`, `b += 10`. 17:02 Оптимизация инкремента • Проблема с большими шагами инкремента: `r += 10` может привести к нарушению условий. • Расчёт оптимального шага: разница между целевыми и начальными значениями делится на количество шагов. • Пример расчёта: разница 65 делится на 10 шагов, округляется до 6. 17:57 Реализация оптимизации • Прибавление 6 к каждому значению `r`, `g`, `b` для достижения анимации. • Пример выполнения: `r += 6`, `g += 6`, `b += 6`. 18:40 Расчёт разницы между шагами • Вычисляем разницу между шагами: 206 - 130 = 76, делим на 10, получаем примерно 8. • К следующему числу будет прибавляться 8, пока не достигнет 206. • Аналогично рассчитываем для другого случая: 250 - 180 = 70, делим на 10, получаем 7. 19:40 Объяснение работы цикла • Объявляем переменные: r = 70, g = 130, b = 180. • Проверяем условия: r ﹤ 135, g ﹤ 206, b ﹤ 250. • Прибавляем к r 6, к g 8, к b 7 до достижения 250. • Цикл прекращается, когда условия не выполняются. 20:38 Тестирование анимации • Нажимаем кнопку, наблюдаем появление объекта. • Регулируем паузу и инкремент для плавного появления. • Оптимальная пауза — 30 миллисекунд. 22:29 Обратная анимация • Создаём цикл для обратного движения объектов. • Используем декремент для уменьшения значений. • Добавляем паузу в 2 секунды для плавного исчезновения. 23:27 Устранение артефактов • Добавляем дополнительный шаг для точного возвращения к начальному цвету. • Записываем начальные значения: r = 70, g = 130, b = 180. • Проверяем результат, объект исчезает плавно. 24:27 Заключение • Предлагается попробовать создать аналогичную анимацию самостоятельно. • Подчёркивается важность практики и понимания процесса. • Призыв ставить лайки и подписываться на канал.

Иконка канала Ленинский Букварь
233 подписчика
12+
5 просмотров
месяц назад
12+
5 просмотров
месяц назад

00:00 Введение и проблема • Обсуждение проблемы прозрачности контролов в Windows Forms. • Упоминание свойства opacity формы, которое не применимо к контролам. • Цель видео: показать, как решить проблему прозрачности контролов. 00:51 Идея решения • Пример вопроса от зрителя о плавном появлении элементов. • Решение проблемы без использования WPF, собственными силами. • Подчёркивание важности фантазии и применения знаний. 02:47 Подготовка к реализации • Выбор цветов для формы и контрола: стиль блю и лайт скай блю. • Создание появляющейся строки для демонстрации эффекта. • План: изменение цвета контрола в цикле без использования opacity. 04:38 Работа с RGB • Объяснение системы RGB: красный, зелёный, синий. • Использование пипетки для получения значений RGB. • Пример работы с цветами в программе FastStone Capture. 06:13 Определение начальных и желаемых цветов • Определение начального цвета стиль блю: 70, 130, 180. • Определение желаемого цвета лайт скай блю: 135, 206, 250. • Проверка работы системы RGB для записи цвета в лейбл. 07:49 Использование директив и RGB в коде • Объяснение использования директив для работы с цветами. • Пример записи цвета в лейбл с использованием RGB: `label1.ForeColor = RGB(128, 255, 255)`. • Экспериментирование с различными комбинациями RGB для получения желаемого цвета. 08:44 Заключение • Подчёркивание возможности смешивания цветов через RGB. • Демонстрация различных результатов при изменении значений RGB. • Подтверждение возможности создания плавного перехода цвета без использования opacity. 09:44 Введение в цикл • Объяснение структуры цикла `for`. • Использование переменных для записи цветов в цикле. • Создание переменных `r`, `g`, `b` типа `byte` для работы с цветами RGB. 10:37 Объявление начальных значений • Объявление начальных значений для `r`, `g` и `b`: `r = 70`, `g = 130`, `b = 180`. • Упрощение кода за счёт использования типов `byte` вместо `int`. 11:35 Условия для цикла • Проверка условий для выполнения цикла: `r ﹤ 135`, `g ﹤ 206`, `b ﹤ 250`. • Запись начального цвета в `RGB` при выполнении условий. 14:21 Инкремент и пауза • Добавление паузы в 100 миллисекунд для анимации. • Инкремент значений `r`, `g`, `b` на 10: `r += 10`, `g += 10`, `b += 10`. 17:02 Оптимизация инкремента • Проблема с большими шагами инкремента: `r += 10` может привести к нарушению условий. • Расчёт оптимального шага: разница между целевыми и начальными значениями делится на количество шагов. • Пример расчёта: разница 65 делится на 10 шагов, округляется до 6. 17:57 Реализация оптимизации • Прибавление 6 к каждому значению `r`, `g`, `b` для достижения анимации. • Пример выполнения: `r += 6`, `g += 6`, `b += 6`. 18:40 Расчёт разницы между шагами • Вычисляем разницу между шагами: 206 - 130 = 76, делим на 10, получаем примерно 8. • К следующему числу будет прибавляться 8, пока не достигнет 206. • Аналогично рассчитываем для другого случая: 250 - 180 = 70, делим на 10, получаем 7. 19:40 Объяснение работы цикла • Объявляем переменные: r = 70, g = 130, b = 180. • Проверяем условия: r ﹤ 135, g ﹤ 206, b ﹤ 250. • Прибавляем к r 6, к g 8, к b 7 до достижения 250. • Цикл прекращается, когда условия не выполняются. 20:38 Тестирование анимации • Нажимаем кнопку, наблюдаем появление объекта. • Регулируем паузу и инкремент для плавного появления. • Оптимальная пауза — 30 миллисекунд. 22:29 Обратная анимация • Создаём цикл для обратного движения объектов. • Используем декремент для уменьшения значений. • Добавляем паузу в 2 секунды для плавного исчезновения. 23:27 Устранение артефактов • Добавляем дополнительный шаг для точного возвращения к начальному цвету. • Записываем начальные значения: r = 70, g = 130, b = 180. • Проверяем результат, объект исчезает плавно. 24:27 Заключение • Предлагается попробовать создать аналогичную анимацию самостоятельно. • Подчёркивается важность практики и понимания процесса. • Призыв ставить лайки и подписываться на канал.

, чтобы оставлять комментарии