Skip to main content

Ribbon Customization

  • 6 minutes to read

The Rich Text Editor allows you to customize its built-in ribbon on the server and client sides.

Rich Text Editor Custom Ribbon

Run Demo: Ribbon Customization

Server-Side Ribbon Customization

Call the Ribbon method to access and customize ribbon settings:

@(Html.DevExpress().RichEdit("richEdit")
    .Ribbon(ribbon => ribbon
        //...
    )
)

Modify the Tab Collection

Add Default Tabs

The Rich Text Editor includes multiple methods that allow you to populate the ribbon with default tabs. For instance, the AddHomeTab() method adds the Home tab to the ribbon.

Note that the Rich Text Editor automatically populates the ribbon with default tabs. To clear the tab collection, call the Clear() method:

@(Html.DevExpress().RichEdit("richEdit")
    .Ribbon(ribbon => ribbon
        .Tabs(tabs => {
            tabs.Clear();
            tabs.AddHomeTab();
            //...
        })
    )
)

Add Custom Tabs

The following methods allow you to add a custom tab to the ribbon:

Add()
Adds a new tab to the end of the ribbon tab collection.
Add(String)
Adds a new tab with the specified title to the end of the ribbon tab collection.
Insert(Int32)
Inserts a new tab to the ribbon tab collection at the specified position.
@(Html.DevExpress().RichEdit("richEdit")
    .Ribbon(ribbon => ribbon
        .Tabs(tabs => {
            tabs.Clear();
            tabs.Add("History")
                .Items(items => {
                    items.AddUndoItem();
                    items.AddRedoItem();
                    //...
                });
        })
    )
)

Remove Tabs

Call one of the following methods to remove tabs from the ribbon:

Clear()
Removes all tabs from the ribbon tab collection.
RemoveAt(Int32)
Removes a tab at the specified position from the ribbon tab collection.
RemoveByTitle(String)
Removes a tab with the specified title from the ribbon tab collection.
@(Html.DevExpress().RichEdit("richEdit")
    .Ribbon(ribbon => ribbon
        .Tabs(tabs => {
            tabs.RemoveByTitle("References");
            //...
        })
    )
)

Modify Context Tab Categories

Call the ContextTabCategories method to access the collection of context tab categories. You can clear, add, and customize the default categories.

@(Html.DevExpress().RichEdit("richEdit")
    .Ribbon(ribbon => ribbon
        .ContextTabCategories(categories => {
            categories.Clear();
            categories.AddHeaderAndFooterContextTabCategory();
            //...
        })
    )
)

Modify the Item Collection

Add Default Items

A tab item collection includes multiple methods that allow you to add default items to a tab. For instance, call AddUndoItem() and AddRedoItem() methods to add Undo and Redo items:

@(Html.DevExpress().RichEdit("richEdit")
    .Ribbon(ribbon => ribbon
        .Tabs(tabs => {
            tabs.Clear();
            tabs.Add("History")
                .Items(items => {
                    items.AddUndoItem();
                    items.AddRedoItem();
                    //...
                });
        })
    )
)

Add Custom Items

The table below lists methods that allow you to add custom items to a tab.

Item Type Add Methods Insert Method
Button AddButton InsertButton(Int32)
Color Box AddColorBox InsertColorBox(Int32)
Menu AddMenu() InsertMenu(Int32)
Number Box AddNumberBox InsertNumberBox(Int32)
Select Box AddSelectBox() InsertSelectBox(Int32)
Toggle Button AddToggleButton InsertToggleButton(Int32, Boolean)
@(Html.DevExpress().RichEdit("richEdit")
    .Ribbon(ribbon => ribbon
        .Tabs(tabs => {
            tabs.Clear();
            tabs.Add()
                .Title("Email")
                .Items(items => {
                    items.AddButton()
                        .Text("Send Email")
                        .CommandName("sendEmail")
                        .ShowText(true)
                        .Icon("email");
                });
        })
    )
    .OnCustomCommandExecuted("onCustomCommandExecuted")
    //...
)

Handle the CustomCommandExecuted event to process a custom item click. The commandName event argument returns the item’s commandName and allows you to identify the item.

function onCustomCommandExecuted(s, e) {
    switch (e.commandName) {
        case 'sendEmail':
            var text = s.document.getText();
            var mailto_link = 'mailto:bob@example.com?subject=Test&body=' + encodeURIComponent(text);
            window = window.open(mailto_link, 'emailWindow');
            if(window && window.open && !window.closed)
                window.close();
            break;
    }
}

Remove Items

The following methods allow to remove items from a tab:

Clear()
Removes all items from the collection.
RemoveAt(Int32)
Removes an item at the specified position from the ribbon item collection.
@(Html.DevExpress().RichEdit("richEdit")
    .Ribbon(ribbon => ribbon
        .Tabs(tabs => {
            tabs.GetByTitle("Home")
                .Items(items => {
                    items.RemoveAt(0);
                    //...
                });
        })
    )
)

Hide the Ribbon

Pass false to the ribbon’s Visible method to hide the ribbon.

@(Html.DevExpress().RichEdit("richEdit")
    .Ribbon(ribbon => ribbon
        .Visible(false)
        //...
    )
)

Client-Side Ribbon Customization

Call the static createOptions method to create control options. The ribbon option returns an object of the Ribbon type that contains ribbon settings.

var options = DevExpress.RichEdit.createOptions();

Modify the Tab Collection

Rearrange Tabs

Use the removeTab(id) and insertTab(tab) methods to move a tab within the ribbon.

//move the Home tab to the third position
options.ribbon.insertTab(options.ribbon.removeTab(DevExpress.RichEdit.RibbonTabType.Home),2);

Add a Custom Tab

Use the insertTab(tab) method to add a custom tab to the ribbon.

var ribbonItemUndo = options.ribbon.getTab(DevExpress.RichEdit.RibbonTabType.Home)
  .getItem(DevExpress.RichEdit.HomeTabItemId.Undo);
var ribbonItemRedo = options.ribbon.getTab(DevExpress.RichEdit.RibbonTabType.Home)
  .getItem(DevExpress.RichEdit.HomeTabItemId.Redo);

var historyTab = new DevExpress.RichEdit.RibbonTab;
historyTab.id = "myHistoryTab";
historyTab.title = "History";
historyTab.items =[ribbonItemUndo, ribbonItemRedo];

options.ribbon.insertTab(historyTab, 0);

RichEdit - Custom Ribbon Tab

Remove a Tab

Use the following methods to remove a tab from the ribbon.

clearTabs
Removes all ribbon tabs.
removeTab(id)
Removes the tab with the specified ID from the ribbon.
removeTab(tab)
Removes the specified tab from the ribbon.
//remove the References tab
options.ribbon.removeTab(DevExpress.RichEdit.RibbonTabType.References);

Modify the Item Collection

Rearrange Items

To move an item within the ribbon, call the removeItem(id) method to remove the item, and then call the insertItem(item) method to insert the item into a new position.

//move the Undo and Redo commands
var homeTab = options.ribbon.getTab(DevExpress.RichEdit.RibbonTabType.Home);
var ribbonItemUndo = homeTab.getItem(DevExpress.RichEdit.HomeTabItemId.Undo);
var ribbonItemRedo = homeTab.getItem(DevExpress.RichEdit.HomeTabItemId.Redo);
ribbonItemUndo.beginGroup = true;
homeTab.removeItem(ribbonItemUndo);
homeTab.removeItem(ribbonItemRedo);
homeTab.insertItem(ribbonItemUndo, 3);
homeTab.insertItem(ribbonItemRedo, 4);
richEdit.updateRibbon(function (ribbon) {
    var pageLayoutTab = ribbon.getTab(DevExpress.RichEdit.RibbonTabType.PageLayout);
    var subMenuItem = pageLayoutTab.getItem(DevExpress.RichEdit.PageLayoutTabItemId.InsertPageBreak);
    if (subMenuItem) {
        pageLayoutTab.removeItem(DevExpress.RichEdit.PageLayoutTabItemId.InsertPageBreak);
        var insertTab = ribbon.getTab(DevExpress.RichEdit.RibbonTabType.Insert);
        insertTab.insertItem(subMenuItem.convertToButton(), 0);
    }
});

Add a Custom Item

Use the insertItem(item) method to add a custom item to a tab.

To process a custom item click, handle the CustomCommandExecuted event. The commandName event argument returns the item’s id property value.

Note

Rich Text Editor determines commands and ribbon items by numeric identifiers. Use strings or numbers greater than 10000 for custom command identifiers.

var ribbonButton = new DevExpress.RichEdit.RibbonButtonItem("sendEmail", "Send Email",
  { icon: "email", showText: true, beginGroup: true });
options.ribbon.getTab(DevExpress.RichEdit.RibbonTabType.Home).insertItem(ribbonButton,2);

options.events.customCommandExecuted = ("function(s, e) {
  switch (e.commandName) {
    case 'sendEmail':
      var text = s.document.getText();
      var mailto_link = 'mailto:bob@example.com?subject=Test&body=' + encodeURIComponent(text);
      window = window.open(mailto_link, 'emailWindow');
      if (window && window.open && !window.closed)
        window.close();
      break;
  }
}");

RichEdit - Custom Ribbon Item

Remove an Item

Use the following methods to remove an item from a tab.

removeItem(id)
Removes the item with the specified ID from the tab.
removeItem(item)
Removes the specified item from the tab.
//remove the Increase Font Size and Decrease Font Size commands from the Home tab
var homeTab = options.ribbon.getTab(DevExpress.RichEdit.RibbonTabType.Home);
homeTab.removeItem(DevExpress.RichEdit.HomeTabItemId.IncreaseFontSize);
homeTab.removeItem(DevExpress.RichEdit.HomeTabItemId.DecreaseFontSize);

Hide the Ribbon

Set the visible property to false to hide the ribbon.

options.ribbon.visible = false;

Update the Ribbon at Runtime

Modify a Ribbon object and send it to the updateRibbon(callback) method to update the ribbon at runtime.

richEdit.updateRibbon(function (ribbon) {
  ribbon.visible = false;
});

Change the Command Availability

Call the setCommandEnabled(command, enabled) method to change the command’s availability.

var ribbonButton = new DevExpress.RichEdit.RibbonButtonItem("sendEmail", "Send Email",
  { icon: "email", showText: true, beginGroup: true });
ribbon.getTab(DevExpress.RichEdit.RibbonTabType.Home).insertItem(ribbonButton);
...
richEdit.setCommandEnabled("sendEmail", false);
richEdit.setCommandEnabled(DevExpress.RichEdit.InsertTabCommandId.ShowInsertTableDialog, false);
richEdit.setCommandEnabled(DevExpress.RichEdit.InsertTabItemId.ShowBookmarkDialog, false);

You can call the getCommandState(commandId) method to get the current state of the command.