Ribbon Customization in UWP Spreadsheet (SfSpreadsheet)
10 May 20215 minutes to read
Ribbon Customization can be done in two ways,
Using Control Template:
User can customize the ribbon items by overriding the template of SfSpreadsheetRibbon
.
Using Event
By invoking SfSpreadsheetRibbon Loaded Event, User can add/delete the ribbon menu items.
Adding a RibbonTab
To create a custom Ribbon tab with user defined menu options in SfSpreadsheetRibbon
,
<syncfusion:SfSpreadsheetRibbon x:Name="ribbon" DataContext="{Binding ElementName=spreadsheet}" />
ribbon.Loaded += ribbon_Loaded;
void ribbon_Loaded(object sender, RoutedEventArgs e)
{
var ribbon1 = GridUtil.GetVisualChild<SfRibbon>(sender as FrameworkElement);
if (ribbon1 != null)
{
SfRibbonTab ribbonTab = new SfRibbonTab();
ribbonTab.Caption = "OTHER";
SfRibbonButton Button1 = new SfRibbonButton();
Button1.Label = "PRINT";
Button1.SizeMode = SizeMode.Large;
Button1.Click += Button1_Click;
SfRibbonButton Button2 = new SfRibbonButton();
Button2.Label = "PRINT PREVIEW";
Button2.SizeMode = SizeMode.Large;
Button2.Click += Button2_Click;
var customRibbonBar = new SfRibbonBar();
customRibbonBar.Header = "Printing Options";
customRibbonBar.Items.Add(Button1);
customRibbonBar.Items.Add(Button2);
ribbonTab.Items.Add(customRibbonBar);
ribbon1.Items.Add(ribbonTab);
}
}
Adding a Ribbon Items in Existing Tab
To add a ribbon items in already existing tab,
<syncfusion:SfSpreadsheetRibbon x:Name="ribbon" DataContext="{Binding ElementName=spreadsheet}" />
ribbon.Loaded += ribbon_Loaded;
void ribbon_Loaded(object sender, RoutedEventArgs e)
{
var ribbon1 = GridUtil.GetVisualChild<SfRibbon>(sender as FrameworkElement);
// To add the ribbon button in View tab,
if (ribbon1 != null)
{
var ribbonTab = ribbon1.Items[2] as RibbonTab;
RibbonButton Button1 = new RibbonButton();
Button1.Label = "PRINT";
Button1.SmallIcon = new BitmapImage(new Uri("/../Icon/Icons_Print.png", UriKind.Relative));
Button1.Click += Button1_Click;
ribbonTab.Items.Add(Button1);
}
}
Removing a RibbonTab
To remove the ribbon tab in the SfSpreadsheetRibbon,
<syncfusion:SfSpreadsheetRibbon x:Name="ribbon" DataContext="{Binding ElementName=spreadsheet}" />
ribbon.Loaded += ribbon_Loaded;
void ribbon_Loaded(object sender, RoutedEventArgs e)
{
var ribbon1 = GridUtil.GetVisualChild<SfRibbon>(sender as FrameworkElement);
//To remove the Data tab from the ribbon,
if (ribbon1 != null)
{
var item = ribbon1.Items[1];
ribbon1.Items.Remove(item);
}
}
Removing a Ribbon Items in a RibbonTab
To remove the ribbon menu items in the ribbon tab of SfSpreadsheetRibbon,
<syncfusion:SfSpreadsheetRibbon x:Name="ribbon" DataContext="{Binding ElementName=spreadsheet}" />
ribbon.Loaded += ribbon_Loaded;
void ribbon_Loaded(object sender, RoutedEventArgs e)
{
var ribbon1 = GridUtil.GetVisualChild<SfRibbon>(sender as FrameworkElement);
// To remove the Freeze panes menu group in View tab,
if (ribbon1 != null)
{
var ribbonTab = ribbon1.Items[2] as RibbonTab;
ribbonTab.Items.Remove(ribbonTab.Items[1]);
}
}