关于 syncfusion-maui-chat
面向 .NET MAUI 开发者的 Syncfusion SfChat 实现指南,可用于聊天机器人、客服和多人消息界面。指南涵盖多种消息类型、数据绑定、交互、样式及无障碍功能。
主要功能
- 01支持文本、图片、卡片和日期时间消息
- 02通过数据绑定和 MVVM 管理消息
- 03提供输入框、建议和输入状态指示
- 04支持历史消息加载与自动滚动
- 05支持消息样式、主题、本地化和 RTL
适用场景
- 01构建聊天机器人或客服界面
- 02展示多人对话和丰富消息内容
- 03加载较早消息并显示输入状态
- 04定制消息样式并支持本地化
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ syncfusion/ maui-ui-components-skills --skill syncfusion-maui-chat安装后在 Claude Code 中输入/syncfusion-maui-chat确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/accessibility-localization.mdadvanced-features.mddata-binding.mdevents.mdgetting-started.mdload-more.mdmessages.mdscrolling.mdstyles.mdsuggestions.mdtyping-indicator.md详细介绍
Syncfusion® .NET MAUI Chat(SfChat)
Syncfusion .NET MAUI Chat 控件(SfChat)提供现代化的对话式 UI,可用于构建聊天机器人界面、客户支持屏幕和多人消息传递体验。它支持丰富的消息类型、实时输入指示器、建议、加载更多历史记录、滑动操作以及深度样式自定义。
何时使用此技能
- 在 .NET MAUI 中构建聊天 UI、聊天机器人界面或消息屏幕
- 显示两个或多个用户之间的对话
- 发送/接收文本、图像、卡片、超链接或日期/时间选择器消息
- 实现输入指示器、消息建议或加载更多历史记录
- 自定义消息外观、形状、发送状态或主题
- 添加滑动操作、时间分隔分组或附件按钮
- 本地化聊天 UI 或启用无障碍功能
组件概述
SfChat 是一款功能强大且可自定义的对话控件,可:
- 在聊天布局中显示收到和发出的消息
- 支持文本、头像、时间戳和自定义消息设计
- 使用 ItemsSource 和 MVVM 轻松绑定数据
- 通过模板和样式自定义 UI
- 自动对齐和分组用户消息与其他消息
- 内置支持发送功能的文本输入框
- 支持发送和点击消息等交互
- 显示图像或自定义布局等丰富内容
- 提供流畅滚动和新消息自动滚动
- 全面控制外观(颜色、字体、气泡)
文档与导航指南
入门
📄 阅读: references/getting-started.md
- NuGet 安装(
Syncfusion.Maui.Chat) - 在
MauiProgram.cs中注册处理程序 - 在 XAML 和 C# 中初始化基本的
SfChat - 使用
Messages和CurrentUser设置 ViewModel - 将消息绑定到聊天控件
- 运行应用程序
消息
📄 阅读: references/messages.md
TextMessage、DatePickerMessage、TimePickerMessage、CalendarMessageHyperlinkMessage、ImageMessage、CardMessage- 发送状态(
ShowDeliveryState、DeliveryState枚举、自定义图标) - 固定消息(
AllowPinning、PinnedMessages、事件、模板) - 消息模板和
ChatMessageTemplateSelector - 可自定义的收到消息/发出消息视图
- 消息间距、形状、时间戳格式、头像/作者可见性
- 发送消息、键盘、多行输入、隐藏输入视图
数据绑定
📄 阅读: references/data-binding.md
- 将
ObservableCollection<object>绑定到Messages - 使用
CurrentUser区分发送者/接收者 - 使用
IMessage/ITextMessage创建自定义数据模型 - 使用
ItemsSourceConverter绑定外部模型 - 在运行时动态更新消息
建议
📄 阅读: references/suggestions.md
- 聊天级建议(
SfChat.Suggestions) - 消息级建议(
TextMessage.Suggestions) SuggestionItemSelected事件和命令- 自定义建议项模板
输入指示器
📄 阅读: references/typing-indicator.md
- 启用输入指示器(
ShowTypingIndicator) - 在
TypingIndicator中设置作者和消息 - 自定义外观
- 动态显示/隐藏
加载更多
📄 阅读: references/load-more.md
- 启用加载更多(
LoadMoreBehavior) LoadMore事件和LoadMoreCommand- 滚动时加载较早的消息
IsLazyLoading属性- 加载完所有消息后禁用
事件与命令
📄 阅读: references/events.md
SendMessage/SendMessageCommandImageTapped/ImageTappedCommandCardTapped/CardCommandSuggestionItemSelectedMessagePinned/MessageUnpinnedLoadMore/LoadMoreCommand- 处理和取消事件参数
样式与外观
📄 阅读: references/styles.md
- 收发消息的样式
- 消息输入视图的样式
- 时间分隔符和正在输入指示器的样式
- 建议视图的样式
MessageShape选项- 主题支持(Material 3、Fluent)
无障碍与本地化
📄 阅读: references/accessibility-localization.md
- 符合 WCAG 2.0
- 键盘导航和屏幕阅读器支持
- 用于 UI 测试的
AutomationId - 使用
.resx资源文件进行本地化 - 支持本地化的字符串
- 支持 RTL 布局
滚动
📄 阅读: references/scrolling.md
- 以编程方式滚动到指定消息(
ScrollToMessage) - 新消息到达时自动滚动到底部(
CanAutoScrollToBottom) - 滚动到底部的悬浮按钮(
ShowScrollToBottomButton) - 自定义滚动到底部按钮(
ScrollToBottomButtonTemplate) Scrolled事件和ChatScrolledEventArgs(IsBottomReached、IsTopReached、ScrollOffset)
高级功能
📄 阅读: references/advanced-features.md
- 消息滑动(向左/向右、
SwipeStarted、SwipeEnded、滑动模板) - 时间分隔符分组(自定义时间分隔符模板)
- 附件按钮(添加、自定义、
AttachmentButtonView) - 液态玻璃效果(启用、平台支持、自定义)
MessageSpacing配置- 隐藏消息输入视图(
ShowMessageInputView)
评论
支持 Markdown