How to: Customize a RibbonControl's Customization Menu
- 2 minutes to read
The following example handles the RibbonControl.ShowCustomizationMenu event to customize the RibbonControl’s context menu.
The example hides the built-in “Add to Quick Access Toolbar” command, and adds a custom “About” command to the menu.
using DevExpress.XtraBars;
using DevExpress.XtraBars.Localization;
private void ribbonControl1_ShowCustomizationMenu(object sender, DevExpress.XtraBars.Ribbon.RibbonCustomizationMenuEventArgs e) {
// Check if the context menu is invoked after a link is right-clicked.
if (e.Link == null) return;
// Locate and hide the "Add to Quick Access Toolbar" command in the context menu
BarItemLink linkAddToQat = e.CustomizationMenu.ItemLinks.Where(link => link.Caption == BarLocalizer.Active.GetLocalizedString(BarString.RibbonToolbarAdd)).FirstOrDefault();
linkAddToQat.Visible = false;
// Check if a custom "About" command has already been created.
BarItemLink menuAboutCommand = e.CustomizationMenu.ItemLinks.Where(link => link.Caption == "About").FirstOrDefault();
// Add the "About" command.
if (menuAboutCommand == null) {
menuAboutCommand = e.CustomizationMenu.AddItem(GetAboutCommand());
// Add a separator before the command.
menuAboutCommand.BeginGroup = true;
}
}
BarItem biAbout;
BarItem GetAboutCommand() {
if (biAbout == null) {
biAbout = new BarButtonItem();
biAbout.Caption = "About";
biAbout.ItemClick += new ItemClickEventHandler(biAbout_ItemClick);
ribbonControl1.Items.Add(biAbout);
}
return biAbout;
}
// The method invoked when the "About" command is clicked.
void biAbout_ItemClick(object sender, ItemClickEventArgs e) {
MessageBox.Show("About");
}