【原创】聊天窗口控件(WINFORM)
作者:超级管理员
发布:2026-10-07 19:10
更新:2026-10-07 19:10
阅读:7
CSharp(C#)
微信风格聊天窗口控件
控件优点
- 微信风格单聊/群聊界面:自己发送的消息靠右、他人消息靠左,可显示昵称
- 五种消息类型:文本(含 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 |

ChatControl
聊天窗口控件