SusHoldButton

长按控件 — 仅在 HoldDurationMs 后完成,带进度反馈。
包
SusKit · 原子(商业)
SusKit · Atoms
属性
| 名称 | 类型 | 默认值 | |
|---|---|---|---|
Text | Prop<string> | "Hold" | |
Icon | Prop<string> | "" | |
Variant | Prop<string> | "elevated" | |
Color | Prop<string> | "primary" | |
Size | Prop<string> | "default" | |
Disabled | Prop<bool> | false | |
Block | Prop<bool> | false | |
HoldDurationMs | Prop<int> | 1000 | |
DelayMs | Prop<int> | 0 | |
ProgressMode | Prop<string> | "strip" | |
CancelRewindMs | Prop<int> | 180 | |
CompletedHoldMs | Prop<int> | 600 | |
AutoResetCompleted | Prop<bool> | true | |
IsHolding | Prop<bool> | false | |
Progress | Prop<float> | 0f | |
Phase | Prop<string> | "idle" |
插槽
没有插槽。
事件
| 名称 | 字段 | 载荷 |
|---|---|---|
Click | OnClick | — |
HoldComplete | OnHoldComplete | — |
HoldCancel | OnHoldCancel | — |
HoldProgress | OnHoldProgress | float |
样式钩子
USS 类契约 — 无需改 C# 即可覆盖外观。状态通过这些类切换:
keyboard-focussus-hold-buttonsus-hold-button__contentsus-hold-button__fillsus-hold-button__iconsus-hold-button__labelsus-hold-button__ringsus-hold-button__tracksus-hold-button--blocksus-hold-button--color-dangersus-hold-button--color-infosus-hold-button--color-primarysus-hold-button--color-secondarysus-hold-button--color-successsus-hold-button--color-warningsus-hold-button--content-sizedsus-hold-button--disabledsus-hold-button--elevatedsus-hold-button--flatsus-hold-button--holdingsus-hold-button--icon-onlysus-hold-button--mode-fillsus-hold-button--mode-ringsus-hold-button--mode-stripsus-hold-button--outlinedsus-hold-button--phase-armedsus-hold-button--phase-cancelledsus-hold-button--phase-completedsus-hold-button--phase-holdingsus-hold-button--phase-idlesus-hold-button--size-defaultsus-hold-button--size-lgsus-hold-button--size-smsus-hold-button--textsus-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。