Nevron Open Vision Documentation
Schedule Ribbon via Code

If you are building a cross-platform NOV application, you can't use the Visual Studio designer, so you should customize the ribbon via code.

Hiding Ribbon Tab Pages and Ribbon Groups

To hide a an element from the ribbon use the corresponding Get... method of the NRichTextViewWithRibbon or the NRichTextViewWithRibbonControl class and set its Visibility property to Collapsed:

The following code snippet hides the "Settings" ribbon tab page and the "Orientation" ribbon group of the "Home" ribbon tab page:

Hide ribbon tab pages and ribbon groups
Copy Code
// Hide the "Settings" ribbon tab page
    .Header.Visibility = ENVisibility.Collapsed;

// Hide the "Orientation" ribbon group of the "Home" ribbon tab page
nScheduleViewWithRibbonControl1.GetRibbonGroup(NScheduleRibbonBuilder.TabPageHomeName, NHomeTabPageBuilder.GroupOrientationName)
    .Visibility = ENVisibility.Collapsed;
Note that instead of using string literals like "Settings", it is better to use the string constants defined in the NScheduleRibbonBuilder class to get ribbon tab page names as shown in the code snippet above. You should use the constants in the corresponding tab page builder to get ribbon group names, for example NHomeTabPageBuilder.GroupOrientationName.
Removing Commands

To remove all widgets associated with specific commands from the commanding UI, use the RemoveCommands method of the rich text view with ribbon:

Remove commands
Copy Code
// Create an array of commands to remove
 NCommand[] commandsToRemove = new NCommand[] {

NScheduleViewRibbon scheduleViewWithRibbon = new NScheduleViewWithRibbon();
Modifying Ribbon Group Builders Collection

If you want to remove a given ribbon tab page, you can easily do so by using the Remove method of the TabPageBuilders collection of the schedule ribbon builder. To remove a ribbon group from a tab page, you should use the Remove method of the RibbonGroupBuilders collection of the ribbon group builder.

The names of all schedule ribbon tab pages are exposed as constants in the NScheduleRibbonBuilder class. Each of the tab page builders exposes as constants the names of its ribbon group builders. The following piece of code demonstrates how to remove the "Editing" ribbon group of the "Home" tab page of the schedule ribbon:

Remove ribbon group
Copy Code
NRibbonTabPageBuilder homeTabBuilder = ribbonBuilder.TabPageBuilders[NScheduleRibbonBuilder.TabPageHomeName];

In order to add or insert your own ribbon group builders, you can use the Add or Insert methods of the RibbonGroupBuilders collection respectively.

Add custom ribbon group
Copy Code
NRibbonTabPageBuilder homeTabBuilder = ribbonBuilder.TabPageBuilders[NScheduleRibbonBuilder.TabPageHomeName];
homeTabBuilder.RibbonGroupBuilders.Insert(0, new CustomRibbonGroupBuilder());
Custom Ribbon Group Builders

To create a custom ribbon group builder you should create a class, which inherits NRibbonGroupBuilder:

Custom ribbon group builder
Copy Code
public class CustomRibbonGroupBuilder : NRibbonGroupBuilder
    public CustomRibbonGroupBuilder()
        : base("Custom Group", NResources.Image_Ribbon_16x16_smiley_png)

    protected override void AddRibbonGroupItems(NRibbonGroupItemCollection items)
        // Add the "Add Appointment" command
            Nevron.Nov.Schedule.NResources.Image_Edit_AddAppointment_png, NScheduleView.AddAppointmentCommand));

        // Add the custom command
        items.Add(CreateRibbonButton(NResources.Image_Ribbon_32x32_smiley_png, NResources.Image_Ribbon_16x16_smiley_png, CustomCommand));
See Also
Send Feedback