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

SusHoldButton

SusHoldButton

Press-and-hold контрол — завершается только после HoldDurationMs с progress-фидбеком.

Пакет

SusKit · Атомы (коммерческий)

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

SusKit · Atoms

Свойства

ИмяТипПо умолчанию
TextProp<string>"Hold"
IconProp<string>""
VariantProp<string>"elevated"
ColorProp<string>"primary"
SizeProp<string>"default"
DisabledProp<bool>false
BlockProp<bool>false
HoldDurationMsProp<int>1000
DelayMsProp<int>0
ProgressModeProp<string>"strip"
CancelRewindMsProp<int>180
CompletedHoldMsProp<int>600
AutoResetCompletedProp<bool>true
IsHoldingProp<bool>false
ProgressProp<float>0f
PhaseProp<string>"idle"

Слоты

Слотов нет.

События

ИмяПолеPayload
ClickOnClick
HoldCompleteOnHoldComplete
HoldCancelOnHoldCancel
HoldProgressOnHoldProgressfloat

Хуки стиля

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

  • keyboard-focus
  • sus-hold-button
  • sus-hold-button__content
  • sus-hold-button__fill
  • sus-hold-button__icon
  • sus-hold-button__label
  • sus-hold-button__ring
  • sus-hold-button__track
  • sus-hold-button--block
  • sus-hold-button--color-danger
  • sus-hold-button--color-info
  • sus-hold-button--color-primary
  • sus-hold-button--color-secondary
  • sus-hold-button--color-success
  • sus-hold-button--color-warning
  • sus-hold-button--content-sized
  • sus-hold-button--disabled
  • sus-hold-button--elevated
  • sus-hold-button--flat
  • sus-hold-button--holding
  • sus-hold-button--icon-only
  • sus-hold-button--mode-fill
  • sus-hold-button--mode-ring
  • sus-hold-button--mode-strip
  • sus-hold-button--outlined
  • sus-hold-button--phase-armed
  • sus-hold-button--phase-cancelled
  • sus-hold-button--phase-completed
  • sus-hold-button--phase-holding
  • sus-hold-button--phase-idle
  • sus-hold-button--size-default
  • sus-hold-button--size-lg
  • sus-hold-button--size-sm
  • sus-hold-button--text
  • sus-hold-button--tonal

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

xml
<template>
  <sus:SusHoldButton Text="Confirm delete"
                     Color="danger"
                     Variant="elevated"
                     HoldDurationMs="1200"
                     ProgressMode="strip"
                     @hold-complete="OnConfirmed" />
</template>

<script>
void OnConfirmed() { /* … */ }
</script>
csharp
var hold = new SusHoldButton();
hold.Text.Value = "Hold to sell";
hold.HoldDurationMs.Value = 1000;
hold.ProgressMode.Value = "strip";
hold.OnHoldComplete += () => { /* … */ };
hold.OnHoldCancel += () => { /* … */ };

Заметки

  • ProgressMode: strip · ring.
  • OnClick срабатывает на обычный клик; успешное удержание — OnHoldComplete.