ChatControl 聊天窗口控件
控件名称
ChatControl

中文名称
微信风格聊天窗口控件
命名空间:AntdUIEx.Controls.Chat
控件优点
- 微信风格单聊/群聊界面:自己发送的消息靠右、他人消息靠左,可显示昵称
- 五种消息类型:文本(含 emoji 字符)、图片、SVG 图标、大号表情、居中系统提示
- 图片消息:圆角显示,左键点击弹出内置图片预览(复用
PreviewForm) - 时间分隔:同分钟内只显示一次时间,自动插入时间分隔条
- 垂直滚动条:鼠标滚轮滚动、滚动条悬停高亮、新增消息自动滚到底部
- 文本可选中:拖动选中并高亮,支持
Ctrl+C复制、Ctrl+A全选、Esc取消 - 右键菜单:内置「复制 / 引用 / 删除 / 搜一搜」,可通过
CustomMenuItems插入自定义项 - 头像点击事件:自己和对方的头像都触发
AvatarClicked,便于扩展个人信息面板 - 背景支持:可设置纯色背景,也可设置背景图片(拉伸 / 平铺 / 居中 / 等比铺满)
- 主题适配:实现
IThemeable,默认跟随全局亮暗主题
组成结构
| 类型 | 说明 |
|---|---|
ChatControl |
自绘聊天控件本体(继承 Control,实现 IThemeable) |
ChatMessage |
单条消息模型,提供 CreateText/CreateImage/CreateIcon/CreateEmoji/CreateSystem工厂方法 |
ChatContentType |
消息内容类型枚举:Text/Image/Icon/Emoji/System |
ChatMenuItem |
自定义右键菜单项(Text/Name/IconSvg) |
ChatMessageEventArgs |
MessageClicked/MessageImageClicked/MessageAction事件参数 |
AvatarClickEventArgs |
头像点击事件参数(Message/IsSelf/Index) |
ChatBackgroundLayout |
背景图片显示方式:Stretch/Tile/Center/Zoom |
重要参数说明
数据与滚动
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
Messages |
List<ChatMessage> |
空集合 | 消息集合,赋值后重新布局 |
AutoScrollToBottom |
bool |
true |
新增消息后是否自动滚动到底部 |
CustomMenuItems |
List<ChatMenuItem> |
空集合 | 自定义右键菜单项,插入在「引用」之后、「删除」之前 |