AIMP4: Skin Engine — пользовательские провайдеры. Часть 2

Вторую часть статьи я посвятил новому типу пользовательского провайдера — CustomContextMenu.

Прошлые статьи по теме:

  1. AIMP4: Skin Engine
  2. AIMP4: Skin Engine — элементы управления. Часть 1
  3. AIMP4: Skin Engine — элементы управления. Часть 2
  4. AIMP4: Skin Engine — пользовательские локализации
  5. AIMP4: Skin Engine — графика
  6. AIMP4: Skin Engine — оптимизации
  7. AIMP4: Skin Engine — пользовательские провайдеры. Часть 1

Пользовательское контекстное меню

CustomContextMenu позволит создать свое собственное контекстное меню и вынести в него любую из команд, что представлена стандартным или пользовательским провайдером.

Как и любой другой пользовательский провайдер, контекстное меню создается через одноименный диалог. Провайдер не имеет точек доступа, а в качестве параметров выступает редактор пунктов меню:

custom context menu editor

Каждому из пунктов меню можно задать заголовок (как напрямую, так и посредством биндинга), иконку (чей размер должен быть строго равен 16х16 пикселей), а так же связи:

context menu item access points

State, в данном случае, отвечает за состояние «галочки», что вы можете сейчас наблюдать у некоторых пунктов стандартных меню.

Для добавления разделителя, необходимо задать пункту меню в качестве заголовка ‘-‘. Непосредственно перед показом меню из него временно убираются невидимые пункты меню, а так же разделители, что располагаются по краям меню после этой операции. Помимо этого разделители, идущие друг за другом, схлопываются до одного. 

Пользовательское контекстное меню можно привязать к элементу управления двумя способами: путем его назначения через свойство PopupMenu у элемента или посредством биндинга:

context menu binding

AIMP4: Skin Engine — пользовательские провайдеры. Часть 2: 4 комментария

  1. Zhenya

    Свойство Caption поддерживает макросы пользовательских локализаций?

    Видимо, будет ещё третья часть про пользовательские провайдеры?
    Потому, что в первых двух записях не было сказано про «провайдеры-скрипты».

Добавить комментарий