如何执行嵌套的ContextMenu实现



我有这样的菜单:

// open context menu
var contextMenu = new ContextMenu();
var versionsMenu = new ToolStripDropDownMenu() {Text = "Version"};
StaticHelpers.GetPackageVersions(textBlockSelected.Text).ForEach(f=> versionsMenu.Items.Add(f));
var scheduleMenu = new ToolStripMenuItem {Text = "Schedule"};
var argumentsMenu = new ToolStripMenuItem() {Text = "Arguments"};
var removeMenu = new ToolStripMenuItem {Text = "Remove"};
//show context menu
contextMenu.Items.Add(versionsMenu);
contextMenu.Items.Add(scheduleMenu);
contextMenu.Items.Add(argumentsMenu);
contextMenu.Items.Add(removeMenu);
//add handlers
// executeMenu.Click += (o, args) => { ExecutePackage(sender); };
//open context menu
contextMenu.IsOpen = true;

我尝试过MenuItems而不是ToolStripMenuItem或ToolStripDropDownMenu,但在任何地方都找不到任何关于如何嵌套这些东西的文档或示例,例如,当用户右键单击我的一个控件时,我想显示此菜单:

  • 版本
  • 时间表
  • 自变量
  • 删除

如果用户悬停在版本上,我希望另一个上下文菜单扩展并显示以下内容:

  • V1.0
  • V1.1
  • V1.2

如何实现此功能?

要添加子菜单,您需要获取一个现有项目并对其执行相同操作:

var versionsMenu = new ToolStripMenuItem();
versionsMenu.DropDownItems.Add(nestedItem);

最新更新