Skip to content

Toast 轻提示 ​

自持可见性与计时的墨色胶囊浮层。支持语义类型、自动隐藏与定位。

契约源:lh-ui-core/specs/toast.json · 黄金用例:lh-ui-core/cases/toast.json(6 条,已翻译为 xUnit 测试)

基础用法 ​

指令式接口(spec 的 show / hide / tick)在端侧落点为方法 + 内部计时: Show(text) 使其可见并重置计时,Hide() 立即隐藏但不触发 Close。 计时由 DispatcherTimer 承载,到期自动隐藏并触发 Close。

9:41Toast 基础
已保存

HTML 模拟预览(Windows / WinUI 3 外观),非真机渲染

csharp
var controller = new LhToastController();
var toast = new LhToast
{
    Duration = 2000,
    Position = LhToastPosition.Center,
    Controller = controller,
};
toast.Close += () => { /* 计时到期自动隐藏后触发 */ };

// 宿主须把 toast 挂在页面 Grid 的最后子节点(层级 zIndex.toast)
controller.Show("已保存");

语义类型 ​

Type 非 default 时在文字前绘制对应语义色圆点(直径取字号)。

9:41Toast 类型
保存成功
请检查网络连接
删除失败

HTML 模拟预览(Windows / WinUI 3 外观),非真机渲染

定位 ​

Position 决定在可用区域内的定位;上下两端留 spacing.xl 边距(center 时无留白)。

9:41Toast 定位
顶部提示
底部提示

HTML 模拟预览(Windows / WinUI 3 外观),非真机渲染

API ​

属性 ​

属性说明类型默认值
Close计时到期自动隐藏时触发;Hide() 主动隐藏不触发event Action—
Type语义类型;非 default 时在文字前绘制对应语义色圆点LhToastTypeDefault
Duration自动隐藏时长(毫秒)int2000
Position在可用区域内的定位LhToastPositionCenter
Controller宿主调用句柄(可选;Loaded 后注册 Show/Hide)LhToastController?null

方法 ​

方法说明
Show(string text)显示提示文字并重置自动隐藏计时
Hide()立即隐藏但不触发 Close

LhToastType ​

值圆点色
Default不绘制圆点
Successcolor.success.default
Warningcolor.warning.default
Dangercolor.danger.default
Infocolor.info.default

LhToastPosition ​

值定位
Top顶部(上端留 spacing.xl 边距)
Center居中(无留白)
Bottom底部(下端留 spacing.xl 边距)

令牌对照 ​

令牌用途
toast.fontSize文字字号(亦为色点直径)
toast.paddingHorizontal / paddingVertical胶囊内边距
toast.borderRadius胶囊圆角
toast.gap色点与文字间距
color.ink胶囊底色
color.onPrimary文字色
color.{success,warning,danger,info}.default语义色点
zIndex.toast浮层层级
spacing.xl上下两端留白
typography.fontFamily国风衬线字体栈

黄金用例对照 ​

cases/toast.json 的 6 条断言与 xUnit 测试的对应关系(tests/LhToastTests.cs):

case id断言本地测试
show-makes-visibleshow 后可见并渲染文字Show_Makes_Visible
auto-hides-after-duration计时到期自动隐藏并触发 onCloseAuto_Hides_After_Duration
tick-before-duration-keeps-visible计时未到期保持可见Tick_Before_Duration_Keeps_Visible
hide-is-silenthide 主动隐藏不触发 onCloseHide_Is_Silent
success-type-uses-success-tokensuccess 类型消费语义色与墨色令牌Success_Type_Uses_Success_Token
hidden-emits-no-commands不可见时不发射任何绘制指令Hidden_Emits_No_Commands

另有暗色专项:Dark_Colors_Come_From_Dark_Tokens / Dimensions_Are_Identical_In_Dark_Mode。 运行:cd lh-ui-windows && dotnet test。