Notification Design Token
Notification 控件使用 NotificationToken(Token ID: "Notification")作为组件级 Design Token,所有视觉属性均从全局 SharedToken 派生,不硬编码任何具体值。
Token 资源访问方式
在 AXAML 中使用组件级 Token:
在 AXAML 中使用全局共享 Token:
组件级 Token 一览
以下是 NotificationToken 定义的全部组件级 Token,按功能分组说明。
背景与颜色 Token
| Token 名 |
类型 |
来源 |
说明 |
NotificationBg |
Color |
SharedToken.ColorBgElevated |
通知卡片背景色 |
NotificationProgressBg |
IImmutableBrush? |
线性渐变(ColorPrimaryHover → ColorPrimary) |
进度条渐变背景色 |
尺寸 Token
| Token 名 |
类型 |
来源 |
说明 |
NotificationWidth |
double |
固定值 384 |
通知卡片宽度 |
NotificationIconSize |
double |
SharedToken.FontSizeLG * SharedToken.RelativeLineHeightLG |
类型图标尺寸 |
NotificationCloseButtonSize |
double |
SharedToken.ControlHeightLG * 0.55 |
关闭按钮尺寸 |
NotificationProgressHeight |
double |
固定值 2 |
进度条高度 |
间距 Token
| Token 名 |
类型 |
来源 |
说明 |
NotificationPadding |
Thickness |
SharedToken.UniformlyPaddingLG (左右), SharedToken.UniformlyPaddingMD (上), 0 (下) |
通知卡片内间距 |
NotificationIconMargin |
Thickness |
0, 0, SharedToken.UniformlyMarginSM, 0 |
类型图标右外边距 |
NotificationCloseButtonPadding |
Thickness |
SharedToken.PaddingXXS |
关闭按钮内间距 |
NotificationMarginBottom |
Thickness |
0, 0, 0, SharedToken.UniformlyMargin |
通知卡片之间的底部间距 |
NotificationTopMargin |
Thickness |
SharedToken.UniformlyMarginLG (左、上、右), 0 (下) |
顶部位置时的卡片外边距 |
NotificationBottomMargin |
Thickness |
SharedToken.UniformlyMarginLG (左、右、下), 0 (上) |
底部位置时的卡片外边距 |
NotificationProgressMargin |
Thickness |
0, 0, 0, 1 |
进度条外边距 |
NotificationContentMargin |
Thickness |
0, 0, 0, SharedToken.UniformlyPaddingMD |
正文内容区域外边距 |
HeaderMargin |
Thickness |
0, 0, 0, SharedToken.UniformlyMarginXS |
标题栏底部外边距 |
主题中使用的全局 SharedToken
除组件级 Token 外,Notification 的 ControlTheme 还直接引用了以下全局 SharedToken:
| Token 资源键 |
使用场景 |
EnableMotion |
全局动画开关,控制 IsMotionEnabled 默认值 |
MotionDurationMid |
出入动画时长 |
BoxShadows |
通知卡片的阴影效果 |
BorderRadiusLG |
通知卡片圆角半径 |
BorderRadiusSM |
关闭按钮圆角半径 |
ColorPrimary |
Information 类型图标颜色 |
ColorSuccess |
Success 类型图标颜色 |
ColorWarning |
Warning 类型图标颜色 |
ColorError |
Error 类型图标颜色 |
ColorTextHeading |
标题文本颜色 |
ColorText |
正文文本颜色 |
FontSize |
正文字体大小 |
FontSizeLG |
标题字体大小 |
FontHeight |
正文行高 |
FontHeightLG |
标题行高 |
IconSizeSM |
关闭按钮图标尺寸 |
Token 对外观的具体影响
通知卡片布局
通知卡片的整体布局由以下 Token 控制:
| 区域 |
Token |
说明 |
| 卡片宽度 |
NotificationWidth |
固定 384px(与 Ant Design 对齐) |
| 卡片背景 |
NotificationBg |
从 ColorBgElevated 派生,支持明暗主题切换 |
| 卡片圆角 |
BorderRadiusLG(SharedToken) |
大圆角样式 |
| 卡片阴影 |
BoxShadows(SharedToken) |
浮层阴影效果 |
| 卡片内间距 |
NotificationPadding |
上:PaddingMD,左右:PaddingLG,下:0 |
图标区域
| 区域 |
Token |
说明 |
| 图标尺寸 |
NotificationIconSize |
基于 FontSizeLG * RelativeLineHeightLG 计算 |
| 图标间距 |
NotificationIconMargin |
图标右侧留出 UniformlyMarginSM 间距 |
| 图标颜色 |
ColorPrimary / ColorSuccess / ColorWarning / ColorError |
根据 NotificationType 选择 |
标题区域
| 区域 |
Token |
说明 |
| 标题字号 |
FontSizeLG(SharedToken) |
大号字体 |
| 标题行高 |
FontHeightLG(SharedToken) |
大号行高 |
| 标题颜色 |
ColorTextHeading(SharedToken) |
标题专用色 |
| 标题间距 |
HeaderMargin |
标题栏底部留出 UniformlyMarginXS 间距 |
关闭按钮
| 区域 |
Token |
说明 |
| 按钮圆角 |
BorderRadiusSM(SharedToken) |
小圆角 |
| 按钮内间距 |
NotificationCloseButtonPadding |
基于 PaddingXXS |
| 图标尺寸 |
IconSizeSM(SharedToken) |
小号图标 |
正文区域
| 区域 |
Token |
说明 |
| 正文字号 |
FontSize(SharedToken) |
标准字体大小 |
| 正文行高 |
FontHeight(SharedToken) |
标准行高 |
| 正文颜色 |
ColorText(SharedToken) |
标准文本色 |
| 正文间距 |
NotificationContentMargin |
正文底部留出 UniformlyPaddingMD 间距 |
进度条
| 区域 |
Token |
说明 |
| 进度条高度 |
NotificationProgressHeight |
固定 2px |
| 进度条颜色 |
NotificationProgressBg |
线性渐变(ColorPrimaryHover → ColorPrimary) |
| 进度条间距 |
NotificationProgressMargin |
底部 1px 间距 |
位置相关边距
| 位置 |
Token |
说明 |
| Top 系列(TopLeft / TopRight / TopCenter) |
NotificationTopMargin |
左、上、右边距为 UniformlyMarginLG,下为 0 |
| Bottom 系列(BottomLeft / BottomRight / BottomCenter) |
NotificationBottomMargin |
左、右、下边距为 UniformlyMarginLG,上为 0 |
暗黑模式支持
NotificationToken.CalculateTokenValues(bool isDarkMode) 会在暗黑模式下根据 SharedToken 的变化自动重新计算所有 Token 值。由于所有颜色和尺寸均从 SharedToken 派生,切换主题时通知的背景色(ColorBgElevated)、文本色(ColorText / ColorTextHeading)、图标色(ColorPrimary 等)会自动适配暗黑模式,无需额外配置。