Skip to content

Checkbox 复选框 ​

复选框。选中画勾、不确定画横杠,点击命中整行(方框 + 标签区域)。

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

基础用法 ​

9:41Checkbox 基础
未选中
✓选中
─不确定

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

csharp
var checkbox = new LhCheckbox
{
    Label = "青花瓷",
    Checked = true,
};
checkbox.Change += isChecked => { };

尺寸 ​

三档尺寸映射到 checkbox.size.* 方框尺寸令牌。

9:41Checkbox 尺寸
✓小型
✓中型
✓大型

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

状态 ​

Disabled 时不响应点击,底/边/指示符/文字全部取 color.disabled.* 令牌; Indeterminate 为不确定态(横杠),点击后变为选中。

9:41Checkbox 状态
✓禁用选中
禁用未选中

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

API ​

属性 ​

属性说明类型默认值
Change选中态变化回调;disabled 时不触发event Action<bool>—
Checked是否选中boolfalse
Indeterminate是否为不确定态(横杠指示);点击后变为选中boolfalse
Disabled是否禁用(不响应点击且呈现禁用样式)boolfalse
Label文字标签(绘制在方框右侧)string""
Size方框尺寸,映射到 checkbox.size.* 令牌LhCheckboxSizeMedium

LhCheckboxSize ​

值尺寸令牌
Smallcheckbox.size.small(14epx)
Mediumcheckbox.size.medium(16epx)
Largecheckbox.size.large(18epx)

令牌对照 ​

令牌用途
checkbox.size.{small,medium,large}三档方框尺寸
checkbox.borderRadius / checkbox.borderWidth方框圆角与描边宽度
checkbox.checkWidth勾形/横杠描边宽度
checkbox.gap方框与文字间距
color.primary.default / color.onPrimary选中/不确定态底色与指示符色
color.border.base未选中描边色
color.disabled.{bg,border,text}禁用态底/边/指示符
color.text.{primary,disabled}标签文字色
typography.fontSize.base / fontFamily标签字号与字体栈

黄金用例对照 ​

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

case id断言本地测试
tap-toggles-and-emits-onchange未选中点击后选中Tap_Toggles_And_Emits_OnChange
tap-checked-unchecks选中点击后取消选中Tap_Checked_Unchecks
disabled-blocks-change禁用态不可交互Disabled_Blocks_Change
checked-uses-primary-tokens选中态消费主色令牌Checked_Uses_Primary_Tokens
unchecked-uses-border-token未选中态消费描边令牌Unchecked_Uses_Border_Token
indeterminate-becomes-checked不确定态点击后选中Indeterminate_Becomes_Checked

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