#31 C# WPF UI - Анимация в Загруженном Изображении_en

00:08 Введение и цель • В предыдущем видео показано, как отправить изображение в чат-приложении. • Приложение имеет плавную анимацию загрузки, но изображение появляется без эффектов. • Цель — добавить анимацию и символы загрузки для изображения. 01:07 Создание присоединённого свойства • Создаём присоединённое свойство для изображения, которое будет называться Is. • Подключаемся к событию изменения источника изображения. • Планируем использовать базовый класс анимации для плавного появления изображения. 01:50 Переопределение обновления значения • Переопределяем обновление значения присоединённого свойства. • Игнорируем анимацию при загрузке изображения. • Проверяем, является ли отправитель изображением, и выполняем анимацию только при необходимости. 03:26 Проблемы с обновлением источника • Обсуждается проблема с обновлением источника изображения в WPF. • Целевое обновление изображения срабатывает всегда, независимо от способа изменения. • Упоминается возможность использования слабых ссылок для устранения утечек памяти. 06:06 Реализация анимации • При первой загрузке скрываем элемент, отключаем загрузку и ждём задержку перед запуском анимации. • Используем помощники для анимации для плавного появления изображения. • Устанавливаем значение true для уведомления об обновлении целевого свойства. 08:18 Добавление индикатора загрузки • Добавляем индикатор загрузки, похожий на спиннер. • Создаём текстовый блок со стилем «вращающийся текст». • Выравниваем текстовый блок по левому краю и верху. 10:18 Настройка индикатора • Принудительно изменяем выравнивание текста. • Выравниваем блок с пузырьками по сетке. • Добавляем значок загрузки и настраиваем его отображение. 11:28 Завершение настройки индикатора • Проверяем отображение индикатора загрузки. • Уточняем, что индикатор должен отображаться только во время загрузки изображения. • Переходим к модели просмотра для реализации отображения индикатора. 12:30 Загрузка изображения • Загружается общедоступное логическое изображение. • Если путь к локальному файлу равен нулю, изображение не загружено. • Объединение изображения с помощью приложения Image Attachment. 13:28 Проблемы с привязкой • Привязка к загруженному изображению может привести к потере уведомлений об изменениях. • Использование двойной точки в привязке подключает элементы списка сообщений чата к изменённому значению свойства. • Инверсия логики видимости изображения. 14:28 Резервное значение привязки • Привязка к нулевому изображению возвращает null, избегая исключения NullReferenceException. • Резервное значение устанавливается, когда исходное значение установить невозможно. • Различие между резервным и целевым нулевым значением. 16:59 Исправление привязки • Изменение контекста данных на вложение изображения и привязка к загруженному внутреннему изображению. • Проблема с отображением загрузчика при загрузке изображения. 17:55 Настройка логики загрузки • Установка нулевой прозрачности для отображения процесса загрузки. • Проверка выравнивания элемента при изменении контекста данных. 19:08 Коррекция выравнивания • Вынесение элемента в рамку с горизонтальным выравниванием. • Изменение вертикального выравнивания рамки. • Принудительное выравнивание текстового блока по верхнему левому углу. 20:02 Проверка анимации загрузки • Возвращение привязки и проверка работы анимации загрузки. • Настройка логики загрузки изображения. 21:10 Завершение анимации • Удаление затухания и анимации для проверки невидимости изображения. • Подтверждение работы анимации загрузки изображения. 22:10 Заключение • Подведение итогов: простая и приятная анимация загрузки изображений. • Возможность использования анимации для других типов контента.

Иконка канала C# WPF Avalonia UI уголок
2 подписчика
12+
1 просмотр
3 дня назад
12+
1 просмотр
3 дня назад

00:08 Введение и цель • В предыдущем видео показано, как отправить изображение в чат-приложении. • Приложение имеет плавную анимацию загрузки, но изображение появляется без эффектов. • Цель — добавить анимацию и символы загрузки для изображения. 01:07 Создание присоединённого свойства • Создаём присоединённое свойство для изображения, которое будет называться Is. • Подключаемся к событию изменения источника изображения. • Планируем использовать базовый класс анимации для плавного появления изображения. 01:50 Переопределение обновления значения • Переопределяем обновление значения присоединённого свойства. • Игнорируем анимацию при загрузке изображения. • Проверяем, является ли отправитель изображением, и выполняем анимацию только при необходимости. 03:26 Проблемы с обновлением источника • Обсуждается проблема с обновлением источника изображения в WPF. • Целевое обновление изображения срабатывает всегда, независимо от способа изменения. • Упоминается возможность использования слабых ссылок для устранения утечек памяти. 06:06 Реализация анимации • При первой загрузке скрываем элемент, отключаем загрузку и ждём задержку перед запуском анимации. • Используем помощники для анимации для плавного появления изображения. • Устанавливаем значение true для уведомления об обновлении целевого свойства. 08:18 Добавление индикатора загрузки • Добавляем индикатор загрузки, похожий на спиннер. • Создаём текстовый блок со стилем «вращающийся текст». • Выравниваем текстовый блок по левому краю и верху. 10:18 Настройка индикатора • Принудительно изменяем выравнивание текста. • Выравниваем блок с пузырьками по сетке. • Добавляем значок загрузки и настраиваем его отображение. 11:28 Завершение настройки индикатора • Проверяем отображение индикатора загрузки. • Уточняем, что индикатор должен отображаться только во время загрузки изображения. • Переходим к модели просмотра для реализации отображения индикатора. 12:30 Загрузка изображения • Загружается общедоступное логическое изображение. • Если путь к локальному файлу равен нулю, изображение не загружено. • Объединение изображения с помощью приложения Image Attachment. 13:28 Проблемы с привязкой • Привязка к загруженному изображению может привести к потере уведомлений об изменениях. • Использование двойной точки в привязке подключает элементы списка сообщений чата к изменённому значению свойства. • Инверсия логики видимости изображения. 14:28 Резервное значение привязки • Привязка к нулевому изображению возвращает null, избегая исключения NullReferenceException. • Резервное значение устанавливается, когда исходное значение установить невозможно. • Различие между резервным и целевым нулевым значением. 16:59 Исправление привязки • Изменение контекста данных на вложение изображения и привязка к загруженному внутреннему изображению. • Проблема с отображением загрузчика при загрузке изображения. 17:55 Настройка логики загрузки • Установка нулевой прозрачности для отображения процесса загрузки. • Проверка выравнивания элемента при изменении контекста данных. 19:08 Коррекция выравнивания • Вынесение элемента в рамку с горизонтальным выравниванием. • Изменение вертикального выравнивания рамки. • Принудительное выравнивание текстового блока по верхнему левому углу. 20:02 Проверка анимации загрузки • Возвращение привязки и проверка работы анимации загрузки. • Настройка логики загрузки изображения. 21:10 Завершение анимации • Удаление затухания и анимации для проверки невидимости изображения. • Подтверждение работы анимации загрузки изображения. 22:10 Заключение • Подведение итогов: простая и приятная анимация загрузки изображений. • Возможность использования анимации для других типов контента.

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