.
To add a ribbon tab for your plugin, you will need to use the INavContext interface. From it, you may call GetRibbon() to retrieve an IRibbon instance. With the IRibbon instance, you may add a new ribbon tab. Here is an example using data binding to the IRibbonControlData/IRibbonMenuData interfaces.
private void CreatePluginRibbon()
{
IRibbon ribbon = mNavigationContext.GetRibbon();
IRibbonTab tab = ribbon.AddNewRibbonTab("PluginTab", "P");
IRibbonGroup group = tab.AddNewRibbonGroup("PluginGroup");
Button searchAndHighlightButton = group.AddRibbonButton(PluginViewModel.SearchHighlight);
IRibbonComboBox comboMenu = group.AddRibbonCombobox(PluginViewModel.Fonts);
}
Sample code for PluginViewModel:
public static class PluginViewModel
{
private static RibbonControlData _searchHighlight;
private static RibbonMenuData _fonts;
public static RibbonControlData SearchHighlight
{
get
{
if (_searchHighlight == null)
{
_searchHighlight = new RibbonControlData()
{
Label = "Search and Highlight",
Command = new ButtonCommand(),
KeyTip = "S"
};
}
return _searchHighlight;
}
}
public static RibbonMenuData Fonts
{
get
{
if (_fonts == null)
{
BitmapImage image = new BitmapImage(new Uri("C:/TFS/Trunk/ObjectApplications/Debug/Flare.app/Plugins/NavigationPlugin/Icons/EditDocument.png"));
_fonts = new RibbonMenuData()
{
Label = "My Fonts",
LargeImage = image
};
_fonts.ControlDataCollection.Add(new RibbonControlData()
{
Label = "Arial"
});
_fonts.ControlDataCollection.Add(new RibbonControlData()
{
Label = "Helvetica"
});
_fonts.ControlDataCollection.Add(new RibbonControlData()
{
Label = "Times New Roman"
});
}
return _fonts;
}
}
}
Note: The Ribbon tab is only visible when the UI interface is in "Ribbon" mode.