跳转到内容

SusHoldButton

SusHoldButton

长按控件 — 仅在 HoldDurationMs 后完成,带进度反馈。

SusKit · 原子(商业)

在 Playground 中打开

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"

插槽

没有插槽。

事件

名称字段载荷
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 += () => { /* … */ };

备注

  • ProgressModestrip · ring
  • OnClick 在普通点击时触发;长按成功对应的是 OnHoldComplete