How to: Create Contextual Tabs

  • 3 minutes to read

The following example demonstrates how to create contextual tab pages in the RibbonControl in code.

In the example, a RibbonControl control is created containing one permanently displayed page ("Home") and two contextual pages ("Format" and "Clipboard"). The contextual pages are combined into a custom page category ("Selection").

Contextual pages are hidden when they are created. They are made visible later via the category's RibbonPageCategory.Visible property.

The following image demonstrates code execution:

CreateContextualTabs_Ex

using DevExpress.XtraBars.Ribbon;
using DevExpress.XtraBars;

// Create a RibbonControl.
RibbonControl Ribbon = new RibbonControl();
// Assign a collection of images that will be used by bar items.
Ribbon.Images = imageCollection1;            
// Create a page and associate it with the default category.
RibbonPage pageHome = new RibbonPage("Home");
Ribbon.Pages.Add(pageHome);
// Create a custom Selection page category.
RibbonPageCategory catSelection = new RibbonPageCategory("Selection", Color.LightPink, false);
Ribbon.PageCategories.Add(catSelection);
// Create two contextual pages (Format an Clipboard)in the Selection category.
RibbonPage contextPageFormat = new RibbonPage("Format");
RibbonPage contextPageClipboard = new RibbonPage("Clipboard");
catSelection.Pages.AddRange(new RibbonPage[] {contextPageFormat, contextPageClipboard});

// Customize the Format page by adding a Format group with two bar items to it.
RibbonPageGroup groupFormat = new RibbonPageGroup("Format");
groupFormat.AllowTextClipping = false;
// Add two items to the Format group
BarButtonItem itemCopy = new BarButtonItem(Ribbon.Manager, "Copy", 0);
BarButtonItem itemCut = new BarButtonItem(Ribbon.Manager, "Cut", 1);
groupFormat.ItemLinks.AddRange(new BarItem[] {itemCopy, itemCut});
contextPageFormat.Groups.Add(groupFormat);
// Subscribe to an event which fires when any item is clicked.
Ribbon.ItemClick += new ItemClickEventHandler(Ribbon_ItemClick);

// Add the RibbonControl to the form.
this.Controls.Add(Ribbon);

//...

// Make the Selection category visible
catSelection.Visible = true;
// Activate the category's first page.
Ribbon.SelectedPage = catSelection.Pages[0];


// Respond to item clicking.
void Ribbon_ItemClick(object sender, ItemClickEventArgs e) {
    //...
}