说明
面向 AI 助手“消息操作栏”的一排图标按钮组件,纯展示、不依赖任何浏览器 API,
常见能力:
- 不传 Items 即用内置默认操作 Actions.Defaults(copy / retry / voice / like),Key 稳定便于分流
- 受控展示:自身不改状态,点击经 OnAction 回传被点项,激活 / 加载由宿主翻转
- ActionItem 支持 Active 激活高亮、Disabled 禁用、Loading 转圈不可点
- ShowLabel 切换纯图标 / 图标+文字;Label 留空回退 Tooltip
- Tooltip 作悬停 title 与 aria-label,禁用 / 加载项不触发回调;整体禁用沿用基类 Disabled
- 图标不本地化,Label / Tooltip 走词条,内置提示复制 / 重新生成 / 朗读 / 点赞已打底
- 纯展示、无 JS 互操作,明暗主题随 CSS 令牌适配;常挂 Bubble 的 Footer 成消息操作栏
用法
<Bubble Placement="start" Name="助手" AvatarIcon="sparkles" Text="…回答…">
<Footer>
<Actions Items="@_bar" OnAction="OnBar" />
</Footer>
</Bubble>
@* 不传 Items 即渲染内置默认(复制 / 重新生成 / 朗读 / 点赞) *@
<Actions OnAction="OnBar" />
@code {
List<ActionItem> _bar = new()
{
new("copy", "copy", null, "复制"),
new("retry", "refresh", null, "重新生成"),
new("like", "thumbs-up", null, "点赞"),
};
async Task OnBar(ActionItem it)
{
if (it.Key == "like") it.Active = !it.Active;
else if (it.Key == "retry") { it.Loading = true; await Regenerate(); it.Loading = false; }
else CopyToClipboard();
}
}
API 参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Items |
List<ActionItem> |
null |
操作项集合。留空则渲染内置默认操作(复制 / 重新生成 / 朗读 / 点赞)。图标不本地化,标签 / 提示走词条。 |
OnAction |
EventCallback<ActionItem> |
— | 事件 点击某个操作项的回调(禁用 / 加载 / 整体禁用时不触发)。 |
ShowLabel |
bool |
false |
是否在图标右侧显示文字标签。默认 false(纯图标)。为真时优先取 Label,留空回退 Tooltip。 |
Visible |
bool |
true |
取得或设置组件是否可见,默认为false。 |
VisibleChanged |
EventCallback<bool> |
— | 事件 取得或设置组件可见性变化时的回调事件。 |
Class |
string |
null |
取得或设置组件的CSS类名,用于自定义样式。 |
Disabled |
bool |
false |
取得或设置组件是否禁用,默认为false。 |
Style |
string |
null |
取得或设置组件的内联样式,用于自定义样式。 |
所有组件均继承
BaseComponent,除上表参数外还支持Class、Style、Disabled、Visible。
扫码关注公众号
扫码加入 QQ 群