Хранитель экрана WPF (Screen saver) - дизайн - градиент - анимации
Пишем простейший хранитель экрана для Windows на C# .NET7 Смотрим работу триггеров, анимации. Также добавляем щепотку чёрной магии pInvoke для Win32. https://github.com/Infarh/HappyNewYea...
За тайм-коды спасибо, Алексей Кулик! 0:00 Постановка задачи 1:36 Создание проекта вручную 3:08 Запуск VS (можно перемотать дальше) 4:20 Наведение порядка 6:00 Подключение системы контроля версий 7:36 Дизайн окна, надпись и цвета фона 12:28 Окно поверх остальных - к чему может привести. Остальные настройки окна 14:53 Настройка анимации. Коллекция триггеров анимации. Storyboard 23:19 Плавность анимации 25:08 Дополнительные параметры анимации - радиусы 27:19 Анимация надписи 34:46 Эффект свечения и его анимания 38:47 Расширения разметки. Случайные значения в разметке 39:17 Создание собственного класса для генерации случайных значений 44:14 Подключение класса в разметку 46:11 Класс для определения времени срабатывания анимации (Duration) 51:46 Подключение класса для обработки времени в разметку 54:07 Почему надо убирать WindowState="Maximized" 55:03 Начало прописывания логики работы скринсейвера 55:56 Режимы запуска 58:58 Отмена автоматического запуска окна 59:50 Обработка ключей командной строки 1:09:08 Создание основного окна приложения 1:12:27 Подключение pInvoke и создание дополнительных классов User32, SystemMetric, Rect, Gdi32, WindowStyles для работы с несколькими рабочими столами 1:21:13 Обработка режима Preview 1:23:58 Обработка режима FullScreen 1:34:37 Проверка работы 1:35:54 Настройка публикации и установки. Проверка результатов публикации 1:41:01 Превращение сборки в хранитель экрана 1:42:50 Публикация одним файлом