控件MessagePanel)
MessagePanel 是一个现代化的消息通知面板控件支持消息筛选、已读/未读状态管理、删除确认等功能。适用于通知中心、消息列表、系统公告等场景。一、示例效果二、使用文档MessagePanel 消息面板控件控件名称MessagePanel中文名称消息面板控件控件优点MessagePanel 是一个现代化的消息通知面板控件支持消息筛选、已读/未读状态管理、删除确认等功能。适用于通知中心、消息列表、系统公告等场景。主要特性消息筛选支持全部/未读两种筛选模式已读/未读管理未读消息显示红点标记点击标题自动标记已读删除确认删除消息时弹出确认对话框防止误删鼠标滚轮滚动支持鼠标滚轮滚动查看更多消息悬停效果消息项悬停时显示边框高亮和删除按钮悬停效果Tooltip提示清空、关闭、删除按钮悬停显示提示文本主题适配支持亮色/暗色主题切换SVG图标使用 SVG 图标管理器加载图标重要参数说明MessagePanel 控件属性基本属性属性名类型默认值说明MessagesListMessageItemnew List()消息列表数据FilterMessageFilterAll筛选条件全部/未读HeaderHeightint48标题栏高度ItemSpacingint8消息项间距ItemPaddingint15消息项内边距CornerRadiusint8圆角半径BorderWidthint1边框宽度颜色属性属性名类型默认值说明BorderColorColor45, 45, 48边框颜色HoverBorderColorColor80, 80, 88悬停边框颜色HeaderBgColorColor30, 30, 33标题栏背景色ItemBgColorColor35, 35, 38消息项背景色HoverBgColorColor45, 45, 48悬停背景色TextColorColor245, 245, 245文本颜色SubTextColorColor150, 150, 160次要文本颜色ButtonBgColorColor1, 139, 141按钮背景色ButtonHoverBgColorColor26, 164, 166按钮悬停背景色IconColorColor180, 180, 190图标颜色DangerColorColor255, 77, 79危险色删除/关闭悬停主题属性属性名类型默认值说明FollowGlobalThemebooltrue是否跟随全局主题MessageItem 消息项属性属性名类型默认值说明Idstring自动生成12位消息唯一标识自动生成Titlestringnull消息标题Contentstringnull消息内容支持换行DateDateTime?null消息日期IsReadboolfalse是否已读NoticeIconstring“notification”通知图标名称ButtonTextstring“详情”跳转按钮文本ButtonIconstring“right”跳转按钮图标ShowButtonbooltrue是否显示跳转按钮TagColorColor255, 77, 79未读红点颜色MessageFilter 筛选枚举值说明All显示全部消息Unread仅显示未读消息重要事件事件名参数类型说明TitleClickedMessageItem点击消息标题时触发MessageDeletedMessageItem消息删除后触发ClearedEventArgs清空全部消息时触发ClosedEventArgs点击关闭按钮时触发使用示例基本使用usingAntdUIEx.Controls.MessagePanel;// 创建消息面板MessagePanelmessagePanelnewMessagePanel();messagePanel.SizenewSize(400,500);messagePanel.LocationnewPoint(10,10);this.Controls.Add(messagePanel);// 添加消息messagePanel.Messages.Add(newMessageItem{Title系统通知,Content您的账户已成功激活欢迎使用系统。,DateDateTime.Now,IsReadfalse,NoticeIconnotification});添加多条消息// 添加多条消息messagePanel.Messages.AddRange(newMessageItem[]{newMessageItem{Title豆包大模型 2.1 已上线,Content豆包已上线豆包大模型 2.1Agent、代码交付、多模态能力全面增强。,DateDateTime.Now.AddDays(-1),IsReadfalse,NoticeIconnotification},newMessageItem{Title版本更新通知,Content系统已更新至最新版本请查看更新日志。,DateDateTime.Now.AddDays(-2),IsReadtrue,NoticeIconinfo},newMessageItem{Title安全提醒,Content检测到异常登录行为请及时修改密码。,DateDateTime.Now.AddHours(-3),IsReadfalse,NoticeIconwarning}});绑定事件// 标题点击事件messagePanel.TitleClicked(sender,item){MessageTip.ShowAtMouse($点击标题{item.Title});// item.IsRead 已自动设置为 true};// 消息删除事件messagePanel.MessageDeleted(sender,item){MessageTip.ShowAtMouse($已删除消息{item.Title});};// 清空事件messagePanel.Cleared(sender,e){MessageTip.ShowAtMouse(已清空全部消息);};// 关闭事件messagePanel.Closed(sender,e){MessageTip.ShowAtMouse(面板已关闭);// 可以隐藏面板或执行其他操作messagePanel.Visiblefalse;};切换筛选模式// 显示全部消息messagePanel.FilterMessageFilter.All;// 仅显示未读消息messagePanel.FilterMessageFilter.Unread;自定义样式// 自定义颜色messagePanel.HeaderBgColorColor.FromArgb(24,144,255);messagePanel.ButtonBgColorColor.FromArgb(24,144,255);messagePanel.TextColorColor.White;messagePanel.BorderColorColor.FromArgb(24,144,255);// 自定义尺寸messagePanel.HeaderHeight56;messagePanel.ItemSpacing12;messagePanel.ItemPadding20;messagePanel.CornerRadius12;自定义消息项// 自定义消息项样式messagePanel.Messages.Add(newMessageItem{Title自定义消息,Content这是一条自定义样式的消息。,DateDateTime.Now,IsReadfalse,NoticeIconstar,// 自定义图标ButtonText查看详情,// 自定义按钮文本ButtonIconarrow-right,// 自定义按钮图标ShowButtontrue,// 显示按钮TagColorColor.FromArgb(255,77,79)// 自定义红点颜色});// 隐藏跳转按钮messagePanel.Messages.Add(newMessageItem{Title无跳转按钮消息,Content这条消息没有跳转按钮。,DateDateTime.Now,IsReadfalse,ShowButtonfalse});主题适配// 跟随全局主题默认messagePanel.FollowGlobalThemetrue;// 禁用主题跟随使用自定义颜色messagePanel.FollowGlobalThemefalse;messagePanel.HeaderBgColorColor.FromArgb(30,30,30);messagePanel.ItemBgColorColor.FromArgb(35,35,35);删除消息// 通过代码删除消息stringmessageIdABC123XYZ456;messagePanel.DeleteMessage(messageId);// 清空全部消息messagePanel.ClearMessages();完整示例publicpartialclassNotificationForm:Form{privateMessagePanelmessagePanel;publicNotificationForm(){InitializeComponent();InitializeMessagePanel();}privatevoidInitializeMessagePanel(){messagePanelnewMessagePanel();messagePanel.SizenewSize(380,450);messagePanel.LocationnewPoint(20,20);this.Controls.Add(messagePanel);// 添加示例消息messagePanel.Messages.AddRange(newMessageItem[]{newMessageItem{Title新功能发布,Content系统新增数据导出功能支持Excel、PDF等多种格式导出。,DateDateTime.Now.AddHours(-1),IsReadfalse,NoticeIconnotification},newMessageItem{Title账户安全提醒,Content您的密码已超过90天未更新建议及时修改以确保账户安全。,DateDateTime.Now.AddDays(-3),IsReadtrue,NoticeIconwarning},newMessageItem{Title系统维护通知,Content系统将于本周六凌晨2:00-4:00进行例行维护届时服务将暂停。,DateDateTime.Now.AddDays(-5),IsReadfalse,NoticeIconinfo}});// 绑定事件messagePanel.TitleClickedOnTitleClicked;messagePanel.MessageDeletedOnMessageDeleted;messagePanel.ClearedOnCleared;messagePanel.ClosedOnClosed;}privatevoidOnTitleClicked(object?sender,MessageItemitem){MessageTip.ShowAtMouse($已查看{item.Title});}privatevoidOnMessageDeleted(object?sender,MessageItemitem){MessageTip.ShowAtMouse($已删除{item.Title});}privatevoidOnCleared(object?sender,EventArgse){MessageTip.ShowAtMouse(已清空全部消息);}privatevoidOnClosed(object?sender,EventArgse){messagePanel.Visiblefalse;}}注意事项消息IDMessageItem 的 Id 属性会在首次访问时自动生成12位随机字符串无需手动设置已读状态点击消息标题会自动将消息标记为已读红点消失删除确认点击删除按钮会弹出确认对话框确认后才会删除消息滚动支持当消息数量较多超出面板高度时支持鼠标滚轮滚动主题适配默认跟随全局主题可通过 FollowGlobalTheme 属性禁用SVG图标NoticeIcon、ButtonIcon 等图标属性使用 SvgIconManager 管理的图标名称设计时支持在设计器中不会加载SVG图标避免设计器异常版本更新2026-06-23新增MessagePanel 消息面板控件新增MessageItem 消息项数据类新增全部/未读筛选功能新增已读/未读红点标记新增删除确认对话框新增鼠标滚轮滚动支持新增Tooltip提示文本新增主题适配支持新增TitleClicked、MessageDeleted、Cleared、Closed 事件三、后记说明更多控件敬请关注如有需求、好的建议请留言(xue5zhijing)更多控件更多https://blog.csdn.net/uaime/article/details/161663833