К содержимому

SusRadialMenu

SusRadialMenu

Круговое action-меню — центральный activator + items по Radius.

Пакет

SusKit · Молекулы (коммерческий)

Открыть в песочнице

SusKit · Molecules

Свойства

ИмяТипПо умолчанию
ModelProp<bool>falsev-model
DisabledProp<bool>falsev-model
CenterTextProp<string>"+"v-model
RadiusProp<float>72fv-model

Слоты

Имя
activator

События

ИмяПолеPayload
SelectOnSelectstring
OpenOnOpen
CloseOnClose

Хуки стиля

Контракт USS-классов — внешний вид переопределяется без правки C#. Состояния переключаются этими классами:

  • sus-radial-menu
  • sus-radial-menu__center
  • sus-radial-menu__item
  • sus-radial-menu__items
  • sus-radial-menu--disabled
  • sus-radial-menu--open
  • sus-slot

Использование

Items задаются в коде (List<RadialMenuItem>). Открытие переключается через Model или центральный activator.

csharp
var radial = new SusRadialMenu();
radial.Items.Value = new List<SusRadialMenu.RadialMenuItem>
{
    new() { Label = "Home", Value = "home", Icon = "home" },
    new() { Label = "Party", Value = "party", Icon = "users" },
    new() { Label = "Shop", Value = "shop", Icon = "shop" },
    new() { Label = "Map", Value = "map", Icon = "map" },
};
radial.CenterText.Value = "+";
radial.Radius.Value = 72f;
radial.Model.Value = true; // open — segments visible
radial.OnSelect += value => { /* … */ };
xml
<template>
  <sus:SusRadialMenu :Model="Open.Value"
                     CenterText="+"
                     :Radius="Radius.Value"
                     :Disabled="Disabled.Value"
                     @select="OnSelect"
                     @open="OnOpen"
                     @close="OnClose" />
</template>

<script>
public Prop<bool> Open = new(false);
public Prop<float> Radius = new(72f);
public Prop<bool> Disabled = new(false);
void OnSelect(string value) { /* … */ }
void OnOpen() { }
void OnClose() { }
// Populate Items in code.
</script>
PropRole
ItemsList<RadialMenuItem> — кнопки-сегменты
ModelОткрыто (true) / закрыто
CenterTextПодпись activator по умолчанию (слот activator переопределяет)
RadiusРасстояние от центра до items
DisabledБлокирует открытие / выбор

Заметки

  • Поля элемента: Label, Value, Icon, Disabled.
  • Выбор элемента вызывает OnSelect и закрывает меню (Model = false).
  • Кастомный activator: разместите контент в слоте activator вместо CenterText.