HyperLinkButton Design Token
HyperLinkButton 复用 ButtonToken(Token ID: "Button")作为组件级 Design Token 作用域。间距、字体等 Token 与 Button 共享,颜色使用 SharedToken 中的链接色系。
架构说明:HyperLinkButton 没有定义自己的 ControlDesignToken,而是在构造函数中通过 this.RegisterTokenResourceScope(ButtonToken.ScopeProvider) 直接复用 Button 的 Token 作用域。这意味着所有 ButtonTokenResource 标记扩展在 HyperLinkButton 的主题中同样可用。
Token 资源访问方式
在 AXAML 中使用组件级 Token(来自 ButtonToken):
在 AXAML 中使用全局共享 Token:
来自 ButtonToken 的组件级 Token
HyperLinkButton 从 ButtonToken 作用域使用以下 Token:
内间距 Token
| Token 名 |
类型 |
说明 |
Padding |
Thickness |
中号按钮内间距 |
PaddingLG |
Thickness |
大号按钮内间距 |
PaddingSM |
Thickness |
小号按钮内间距 |
IconOnyPadding |
Thickness |
仅图标中号按钮内间距 |
IconOnyPaddingLG |
Thickness |
仅图标大号按钮内间距 |
IconOnyPaddingSM |
Thickness |
仅图标小号按钮内间距 |
字体 Token
| Token 名 |
类型 |
说明 |
ContentFontSize |
double |
中号按钮字体大小 |
ContentFontSizeLG |
double |
大号按钮字体大小 |
ContentFontSizeSM |
double |
小号按钮字体大小 |
图标 Token
| Token 名 |
类型 |
说明 |
OnlyIconSize |
double |
仅图标中号按钮图标尺寸 |
OnlyIconSizeLG |
double |
仅图标大号按钮图标尺寸 |
OnlyIconSizeSM |
double |
仅图标小号按钮图标尺寸 |
IconMargin |
Thickness |
图标与文本之间的间距(图标 + 文本共存时使用) |
其他 Token
| Token 名 |
类型 |
说明 |
BorderColorDisabled |
Color |
禁用态边框颜色 |
来自 SharedToken 的全局 Token
HyperLinkButton 的 ControlTheme 直接引用以下全局 SharedToken:
颜色 Token(链接色系)
| Token 资源键 |
使用场景 |
说明 |
ColorLink |
正常态前景色 + 图标色 |
链接文本的默认颜色(通常为蓝色) |
ColorLinkHover |
悬浮态前景色 + 图标色 |
鼠标悬浮时的链接颜色 |
ColorLinkActive |
按下态前景色 + 图标色 |
鼠标按下时的链接颜色 |
颜色 Token(危险色系)
| Token 资源键 |
使用场景 |
说明 |
ColorError |
:danger 正常态前景色 + 图标色 |
危险链接的默认红色 |
ColorErrorHover |
:danger 悬浮态前景色 + 图标色 |
危险链接悬浮时的颜色 |
ColorErrorActive |
:danger 按下态前景色 + 图标色 |
危险链接按下时的颜色 |
颜色 Token(禁用态)
| Token 资源键 |
使用场景 |
说明 |
ColorTextDisabled |
:disabled 前景色 + 图标色 |
禁用状态的灰色文本 |
尺寸 Token
| Token 资源键 |
使用场景 |
说明 |
ControlHeight |
SizeType=Middle 时的高度 |
中号链接按钮高度 |
ControlHeightSM |
SizeType=Small 时的高度 |
小号链接按钮高度 |
ControlHeightLG |
SizeType=Large 时的高度 |
大号链接按钮高度 |
IconSize |
SizeType=Middle 时的图标大小 |
中号图标尺寸 |
IconSizeSM |
SizeType=Small 时的图标大小 |
小号图标尺寸 |
IconSizeLG |
SizeType=Large 时的图标大小 |
大号图标尺寸 |
动画 Token
| Token 资源键 |
使用场景 |
说明 |
EnableMotion |
IsMotionEnabled 默认值 |
全局动画开关 |
OpacityLoading |
:loading 时的不透明度 |
加载态透明度(通常为 0.65) |
Token 对外观的具体影响
状态与颜色 Token 映射
| 状态组合 |
前景色 |
图标色(IconBrush/FillBrush) |
| 正常 |
ColorLink |
ColorLink |
| 正常 + 悬浮 |
ColorLinkHover |
ColorLinkHover |
| 正常 + 按下 |
ColorLinkActive |
ColorLinkActive |
| 危险 |
ColorError |
ColorError |
| 危险 + 悬浮 |
ColorErrorHover |
ColorErrorHover |
| 危险 + 按下 |
ColorErrorActive |
ColorErrorActive |
| 禁用(任何类型) |
ColorTextDisabled |
ColorTextDisabled |
| 加载中 |
继承当前前景色 |
继承当前图标色,并添加旋转动画 |
尺寸与 Token 映射
| 尺寸 |
高度 |
内间距 |
字号 |
图标大小 |
仅图标尺寸 |
Large |
ControlHeightLG |
PaddingLG |
ContentFontSizeLG |
IconSizeLG |
OnlyIconSizeLG |
Middle |
ControlHeight |
Padding |
ContentFontSize |
IconSize |
OnlyIconSize |
Small |
ControlHeightSM |
PaddingSM |
ContentFontSizeSM |
IconSizeSM |
OnlyIconSizeSM |
仅图标模式的 Token 差异
当 :icononly 伪类激活时(仅有图标无文本):
- 图标间距
Margin 重置为 0(不再使用 IconMargin)
- 图标尺寸切换为
OnlyIconSize / OnlyIconSizeLG / OnlyIconSizeSM(比带文本模式更大)
- 内间距切换为
IconOnyPadding / IconOnyPaddingLG / IconOnyPaddingSM