58. Avalonia UI Real World (Flyout Menu)
00:00 Введение и цель видео • В предыдущем видео было реализовано перетаскивание элементов в списке. • Цель текущего видео — создать контекстное меню для быстрой добавления действий на главной странице. • Контекстное меню должно отображать доступные действия при щелчке правой кнопкой мыши. 00:57 Изучение возможностей контекстного меню • Анализ документов «Авалонии» показывает, что контекстное меню легко реализовать. • Обсуждение возможностей настройки внешнего вида меню. 01:16 Реализация контекстного меню • Добавление контекстного меню в список действий. • Проверка работы меню при щелчке правой кнопкой мыши. 02:59 Настройка параметров меню • Исследование параметров настройки меню, включая изменение курсора и запуск команд. • Попытка добавить список с заголовками в меню. 04:40 Проблемы с контекстным меню • Обнаружение ограничений контекстного меню, связанных с группой меню. • Решение использовать всплывающее окно вместо контекстного меню. 05:18 Реализация всплывающего окна • Создание базы для всплывающего элемента. • Настройка отображения всплывающего окна при щелчке правой кнопкой мыши. 08:20 Тестирование всплывающего окна • Проверка работы всплывающего окна и его закрытия при щелчке. • Ограничение отображения всплывающего окна только при щелчке правой кнопкой мыши. 09:40 Добавление содержимого в всплывающее окно • Добавление списка доступных действий в всплывающее окно. • Исправление ошибок в отображении списка. 10:52 Финальные настройки • Удаление границы всплывающего окна. • Настройка стиля всплывающего окна для улучшения внешнего вида. 11:33 Управление стилями • Сохранение стилей для управления ими пользователем. • Настройка селектора и свойств стиля. • Проверка работы свойств отступа. 12:33 Перенос стилей • Перенос стилей в раздел «Стили» для отображения в нескольких всплывающих окнах. • Удаление кнопок «плюс» для предотвращения изменения размера меню. 13:02 Настройка меню • Удаление кнопки «плюс» из меню. • Привязка метода к кнопкам для автоматического закрытия меню при нажатии правой кнопкой мыши. 13:49 Стилизация контекстного меню • Установка нулевой толщины границы и добавление отступов для стилизации контекстного меню. • Проверка визуального эффекта. 14:13 Взаимодействие с элементами • Реализация закрытия меню при нажатии на пункты. • Использование grid для запуска команды при нажатии кнопки мыши. 15:11 Работа с отступами • Настройка отступов для элементов списка. • Решение проблемы с кликами внутри и за пределами определённых мест. 16:40 События указателя • Анализ событий указателя для взаимодействия с элементами. • Выбор события «нажатие указателя» для реализации взаимодействия. 20:11 Тестирование событий • Тестирование работы событий при нажатии правой кнопкой мыши. • Обнаружение проблем с перетаскиванием мыши при нажатии. 22:26 Отказ от событий указателя • Отказ от использования событий указателя из-за их глючности. • Возвращение к триггеру события «нажато». 23:37 Классический подход • Рассмотрение классического способа реализации взаимодействия. • Получение модели представления и контекста данных для вызова действия «добавить». 24:07 Добавление действия • Вызов команды или запуск процесса. • Установка значения null для тестирования. • Проверка работы события при щелчке правой кнопкой мыши. 24:47 Работа с отправителем и контекстом данных • Отправитель — граница, содержащая контекст данных. • Получение доступного действия itemviewmodel от отправителя. • Применение контекста данных к элементу управления. 25:17 Работа с viewmodel • Перенос контекста данных в viewmodel. • Объявление метода общедоступным для использования. • Создание viewmodel на основе контекста данных. 26:18 Проблемы с событиями • События реагируют неправильно. • Тестирование добавления элементов при щелчке правой кнопкой мыши. • Обнаружение проблемы с добавлением элементов при щелчке между элементами на границе. 27:25 Решение проблемы с фоном • Проверка влияния фона на события щелчка. • Настройка цвета фона для корректной работы событий. • Успешное решение проблемы с добавлением элементов. 27:56 Закрытие меню • Закрытие меню при щелчке левой кнопкой мыши. • Ограничение начальной кнопки мыши. • Создание закрытой территории для управления меню. 30:04 Работа со списком действий • Открытие окна со списком действий. • Обновление меню для быстрого добавления элементов. • Вставка элементов в определённое место списка. 31:57 Завершение • Проверка работы вставки элементов. • Ограничения на добавление элементов в начало или конец списка. • Подведение итогов: создание меню для щелчка правой кнопкой мыши.
00:00 Введение и цель видео • В предыдущем видео было реализовано перетаскивание элементов в списке. • Цель текущего видео — создать контекстное меню для быстрой добавления действий на главной странице. • Контекстное меню должно отображать доступные действия при щелчке правой кнопкой мыши. 00:57 Изучение возможностей контекстного меню • Анализ документов «Авалонии» показывает, что контекстное меню легко реализовать. • Обсуждение возможностей настройки внешнего вида меню. 01:16 Реализация контекстного меню • Добавление контекстного меню в список действий. • Проверка работы меню при щелчке правой кнопкой мыши. 02:59 Настройка параметров меню • Исследование параметров настройки меню, включая изменение курсора и запуск команд. • Попытка добавить список с заголовками в меню. 04:40 Проблемы с контекстным меню • Обнаружение ограничений контекстного меню, связанных с группой меню. • Решение использовать всплывающее окно вместо контекстного меню. 05:18 Реализация всплывающего окна • Создание базы для всплывающего элемента. • Настройка отображения всплывающего окна при щелчке правой кнопкой мыши. 08:20 Тестирование всплывающего окна • Проверка работы всплывающего окна и его закрытия при щелчке. • Ограничение отображения всплывающего окна только при щелчке правой кнопкой мыши. 09:40 Добавление содержимого в всплывающее окно • Добавление списка доступных действий в всплывающее окно. • Исправление ошибок в отображении списка. 10:52 Финальные настройки • Удаление границы всплывающего окна. • Настройка стиля всплывающего окна для улучшения внешнего вида. 11:33 Управление стилями • Сохранение стилей для управления ими пользователем. • Настройка селектора и свойств стиля. • Проверка работы свойств отступа. 12:33 Перенос стилей • Перенос стилей в раздел «Стили» для отображения в нескольких всплывающих окнах. • Удаление кнопок «плюс» для предотвращения изменения размера меню. 13:02 Настройка меню • Удаление кнопки «плюс» из меню. • Привязка метода к кнопкам для автоматического закрытия меню при нажатии правой кнопкой мыши. 13:49 Стилизация контекстного меню • Установка нулевой толщины границы и добавление отступов для стилизации контекстного меню. • Проверка визуального эффекта. 14:13 Взаимодействие с элементами • Реализация закрытия меню при нажатии на пункты. • Использование grid для запуска команды при нажатии кнопки мыши. 15:11 Работа с отступами • Настройка отступов для элементов списка. • Решение проблемы с кликами внутри и за пределами определённых мест. 16:40 События указателя • Анализ событий указателя для взаимодействия с элементами. • Выбор события «нажатие указателя» для реализации взаимодействия. 20:11 Тестирование событий • Тестирование работы событий при нажатии правой кнопкой мыши. • Обнаружение проблем с перетаскиванием мыши при нажатии. 22:26 Отказ от событий указателя • Отказ от использования событий указателя из-за их глючности. • Возвращение к триггеру события «нажато». 23:37 Классический подход • Рассмотрение классического способа реализации взаимодействия. • Получение модели представления и контекста данных для вызова действия «добавить». 24:07 Добавление действия • Вызов команды или запуск процесса. • Установка значения null для тестирования. • Проверка работы события при щелчке правой кнопкой мыши. 24:47 Работа с отправителем и контекстом данных • Отправитель — граница, содержащая контекст данных. • Получение доступного действия itemviewmodel от отправителя. • Применение контекста данных к элементу управления. 25:17 Работа с viewmodel • Перенос контекста данных в viewmodel. • Объявление метода общедоступным для использования. • Создание viewmodel на основе контекста данных. 26:18 Проблемы с событиями • События реагируют неправильно. • Тестирование добавления элементов при щелчке правой кнопкой мыши. • Обнаружение проблемы с добавлением элементов при щелчке между элементами на границе. 27:25 Решение проблемы с фоном • Проверка влияния фона на события щелчка. • Настройка цвета фона для корректной работы событий. • Успешное решение проблемы с добавлением элементов. 27:56 Закрытие меню • Закрытие меню при щелчке левой кнопкой мыши. • Ограничение начальной кнопки мыши. • Создание закрытой территории для управления меню. 30:04 Работа со списком действий • Открытие окна со списком действий. • Обновление меню для быстрого добавления элементов. • Вставка элементов в определённое место списка. 31:57 Завершение • Проверка работы вставки элементов. • Ограничения на добавление элементов в начало или конец списка. • Подведение итогов: создание меню для щелчка правой кнопкой мыши.
