公告 欢迎您,我的朋友,目前开放免费注册,注册登录后查看更多内容!开通会员送积分,相应文档随便看,积分充值登录后个人中心内按需充值!

🔐 内容菜单控件ContextMenuEx

ContextMenuEx 是一个功能丰富的内容菜单控件,支持多级菜单、图标、快捷键、分割线、主题适配、圆角边框和弹出动画效果。

ContextMenuEx 内容菜单控件

ContextMenuEx 是一个功能丰富的内容菜单控件,支持多级菜单、图标、快捷键、分割线、主题适配、圆角边框和弹出动画效果。

功能特性

  • 智能位置:默认在控件下方弹出,自动检测屏幕边界并调整位置
  • 多级菜单:支持一级、二级菜单(更多层级通过递归实现)
  • 图标支持:支持图片图标(优先级高)和 SVG 图标
  • 快捷键显示:支持在菜单项右侧显示快捷键或说明文本(灰色)
  • 分割线:支持菜单项之间的分割线
  • 子菜单箭头:有子菜单的项自动显示箭头指示
  • 主题适配:支持亮色/暗色主题切换,实现 IThemeable 接口
  • 圆角边框:支持自定义菜单圆角半径
  • 弹出动画:柔和淡入动画效果(可禁用)
  • 边界保护:自动调整位置防止菜单超出屏幕边界
  • 行号标识:菜单项支持 RowIndex 用于识别和排序
  • 不抢夺焦点:菜单弹出时不获取焦点,不会导致父窗体失去焦点

快速开始

最简单的使用示例

// 创建菜单
var contextMenu = new ContextMenuEx();

// 添加菜单项
contextMenu.Items.AddItem("新建", "file-add", "new");
contextMenu.Items.AddItem("打开", "folder-open", "open");
contextMenu.Items.AddSeparator();
contextMenu.Items.AddItem("保存", "save", "save").Shortcut = "Ctrl+S";
contextMenu.Items.AddItem("另存为...", "save-as", "saveas");

// 绑定点击事件
contextMenu.ItemClick += (s, e) =>
{
    MessageBox.Show($"点击了: {e.Item.Text} (Name: {e.Item.Name})");
};

// 在按钮点击时显示菜单
private void btnMenu_Click(object sender, EventArgs e)
{
    contextMenu.Show(btnMenu);
}

该文档需要「文档会员」身份

请先登录后继续阅读。