Skip to content

Карточка плейлиста теряет активное состояние при открытом контекстном меню #39

@Scream034

Description

@Scream034

Суть проблемы (в чём баг)

При клике правой кнопкой мыши (ПКМ) на карточке плейлиста в медиатеке открывается контекстное меню. Однако, как только курсор мыши уходит с карточки на элементы меню, карточка визуально гаснет (ее рамка снова становится серой). Теряется визуальный контекст: пользователь не видит четкой связи между меню и объектом, для которого оно было вызвано. Карточка должна сохранять обводку своего активного состояния (AccentBrush) всё время, пока открыто меню.

Как воспроизвести (Steps to Reproduce)

  1. Открыть вкладку "Библиотека".
  2. Кликнуть ПКМ по любой карточке плейлиста (появится контекстное меню).
  3. Навести курсор мыши на элементы открывшегося меню.
  4. Наблюдать, как карточка плейлиста теряет рамку активного наведения и визуально сливается со спокойным состоянием сетки.

Возможное техническое решение (теория и архитектура)

  1. В файле стилей AppComponents.axaml добавить поддержку класса .menu-open для карточки плейлиста, который принудительно задает BorderBrush в цвет AccentBrush:
<Style Selector="Border.playlist-card-inner.menu-open">
    <Setter Property="BorderBrush" Value="{DynamicResource AccentBrush}" />
</Style>
  1. В разметке LibraryView.axaml привязать события открытия и закрытия контекстного меню к методам в code-behind.
  2. В code-behind LibraryView.axaml.cs при срабатывании событий динамически добавлять и удалять класс menu-open у PlacementTarget (контрола Border, на котором было вызвано меню). Это полностью исключает утечки памяти и не перегружает VM-слой логикой отображения.

Окружение (Environment)

  • Версия LMP: 256-dev+
  • Версия ОС: Windows 10 / 11

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions