Skip to main content

syncfusion-winui-ribbon

Guide for implementing the Syncfusion WinUI Ribbon control (SfRibbon) to organize application commands into tabs and groups, similar to Microsoft Office. Use this when working with ribbon-based navigation, Quick Access Toolbar (QAT), or backstage menus. This skill covers ribbon setup, tab and group configuration, keyboard navigation (KeyTip), and ScreenTip tooltips.

Source facts

Repository
syncfusion/winui-ui-components-skills
Last source activity
July 6, 2026 at 07:16
Detected SKILL.md language
English
Stars
1
Forks
0

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
9 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
syncfusion-winui-ribbon
description
Guide for implementing the Syncfusion WinUI Ribbon control (SfRibbon) to organize application commands into tabs and groups, similar to Microsoft Office. Use this when working with ribbon-based navigation, Quick Access Toolbar (QAT), or backstage menus. This skill covers ribbon setup, tab and group configuration, keyboard navigation (KeyTip), and ScreenTip tooltips.
metadata
{"author":"Syncfusion Inc","version":"34.1.29"}
# Implementing Syncfusion WinUI Ribbons Comprehensive guide for implementing Syncfusion's WinUI Ribbon (SfRibbon) control - a command bar that organizes application commands and tools into tabbed groups, providing a Microsoft Office-style interface for WinUI 3 desktop applications. ## When to Use This Skill Use this skill when the user needs to: - Implement a Ribbon control in a WinUI 3 application - Organize application commands using tabs and groups (like Microsoft Office) - Add ribbon buttons, dropdowns, split buttons, or toggle buttons - Create a backstage menu for settings and options - Implement Quick Access Toolbar (QAT) for frequently-used commands - Enable simplified/compact ribbon layout for space-saving UI - Add ribbon gallery controls for styles and templates - Configure keyboard shortcuts with KeyTip - Implement enhanced tooltips with ScreenTip - Handle ribbon resizing and responsive behavior - Host custom controls (ComboBox, CheckBox, etc.) in ribbon - Customize ribbon appearance with themes and templates - Create contextual tabs that appear based on user selection ## Component Overview The Syncfusion WinUI Ribbon control provides a comprehensive command organization system for modern Windows applications. It organizes commands hierarchically: **Hierarchy:** Ribbon → Tabs → Groups → Items (Buttons, Dropdowns, etc.) **Key Capabilities:** - **Tab & Group Organization**: Categorize commands logically - **Multiple Button Types**: Regular, Dropdown, Split, Toggle buttons - **Backstage View**: Separate view for application settings (like File menu in Office) - **Simplified Layout**: Compact single-line mode with overflow menu - **Ribbon Gallery**: Display collections of styles/templates - **Quick Access Toolbar**: User-customizable toolbar for frequent commands - **Keyboard Navigation**: KeyTip support for keyboard shortcuts - **Enhanced Tooltips**: ScreenTip with rich content - **Responsive Design**: Automatic resizing and item prioritization - **Custom Controls**: Host any WinUI control in ribbon groups **Package:** `Syncfusion.Ribbon.WinUI` **Namespace:** `Syncfusion.UI.Xaml.Ribbon` **Main Control:** `SfRibbon` ## Documentation and Navigation Guide ### 🚀 Getting Started 📄 **Read:** [references/getting-started.md](references/getting-started.md) - Installation and NuGet package setup - Namespace import and initialization - Creating your first ribbon with basic tabs - Adding ribbon to WinUI application - License configuration - Minimal working example ### 📑 Tabs and Groups 📄 **Read:** [references/tabs-and-groups.md](references/tabs-and-groups.md) - Creating and configuring RibbonTabs - Organizing commands with RibbonGroups - Tab selection and navigation - Contextual tab groups (conditional tabs) - Tab appearance customization - SelectFirstTabOnVisible behavior ### 🔘 Ribbon Items 📄 **Read:** [references/ribbon-items.md](references/ribbon-items.md) - RibbonButton (standard button) - RibbonDropDownButton (dropdown menu) - RibbonSplitButton (click + dropdown) - RibbonToggleButton (on/off states) - Item sizing modes (Small, Normal, Large) - Icon types and configuration - RibbonComboBox in ribbon - Hosting custom controls with RibbonItemHost - Group launcher button ### 🎭 Backstage 📄 **Read:** [references/backstage.md](references/backstage.md) - RibbonBackstage overview - BackstageView control setup - Creating custom backstage layouts - Settings and options panels - Backstage navigation patterns - Exit backstage handling ### ⚡ Quick Access Toolbar 📄 **Read:** [references/quick-access-toolbar.md](references/quick-access-toolbar.md) - QAT overview and purpose - Adding commands to QAT - Customization and positioning - Common QAT patterns (Save, Undo, Redo) ### 📐 Simplified Layout 📄 **Read:** [references/simplified-layout.md](references/simplified-layout.md) - Simplified layout overview (single-line compact mode) - LayoutModeOptions and ActiveLayoutMode - Switching between Normal and Simplified - DisplayOptions per item (Normal, Simplified, OverflowMenu) - Overflow menu behavior - Compact UI design patterns ### 🎨 Advanced Features 📄 **Read:** [references/advanced-features.md](references/advanced-features.md) - RibbonGallery for style collections - KeyTip for keyboard navigation - ScreenTip for enhanced tooltips - Ribbon resizing and compact sizing - Responsive ribbon design - Window resize handling ### 🖌️ UI Customization 📄 **Read:** [references/ui-customization.md](references/ui-customization.md) - RightPane configuration - Theme customization - Template overrides - Custom styling - Accessibility considerations - Icon customization ## Quick Start Example ### Basic Ribbon with Tabs and Buttons ```xaml <Page x:Class="MyApp.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ribbon="using:Syncfusion.UI.Xaml.Ribbon"> <Grid x:Name="rootGrid"> <ribbon:SfRibbon x:Name="sfRibbon"> <!-- Tabs --> <ribbon:SfRibbon.Tabs> <ribbon:RibbonTab Header="Home"> <!-- Clipboard Group --> <ribbon:RibbonGroup Header="Clipboard"> <ribbon:RibbonSplitButton Content="Paste" Icon="Paste" AllowedSizeModes="Large"> <ribbon:RibbonSplitButton.Flyout> <MenuFlyout> <MenuFlyoutItem Text="Paste" /> <MenuFlyoutItem Text="Paste Special" /> </MenuFlyout> </ribbon:RibbonSplitButton.Flyout> </ribbon:RibbonSplitButton> <ribbon:RibbonButton Content="Cut" Icon="Cut" AllowedSizeModes="Normal" /> <ribbon:RibbonButton Content="Copy" Icon="Copy" AllowedSizeModes="Normal" /> </ribbon:RibbonGroup> <!-- Font Group --> <ribbon:RibbonGroup Header="Font"> <ribbon:RibbonToggleButton Content="Bold" AllowedSizeModes="Normal"> <ribbon:RibbonToggleButton.Icon> <SymbolIcon Symbol="Bold" /> </ribbon:RibbonToggleButton.Icon> </ribbon:RibbonToggleButton> <ribbon:RibbonToggleButton Content="Italic" AllowedSizeModes="Normal"> <ribbon:RibbonToggleButton.Icon> <SymbolIcon Symbol="Italic" /> </ribbon:RibbonToggleButton.Icon> </ribbon:RibbonToggleButton> </ribbon:RibbonGroup> </ribbon:RibbonTab> <ribbon:RibbonTab Header="Insert"> <ribbon:RibbonGroup Header="Illustrations"> <ribbon:RibbonButton Content="Pictures" AllowedSizeModes="Large"> <ribbon:RibbonButton.Icon> <SymbolIcon Symbol="Pictures" /> </ribbon:RibbonButton.Icon> </ribbon:RibbonButton> </ribbon:RibbonGroup> </ribbon:RibbonTab> <ribbon:RibbonTab Header="View" /> </ribbon:SfRibbon.Tabs> </ribbon:SfRibbon> </Grid> </Page> ``` **C# Code-behind:** ```csharp using Syncfusion.UI.Xaml.Ribbon; namespace MyApp { public sealed partial class MainPage : Page { public MainPage() { this.InitializeComponent(); // Optionally configure ribbon programmatically sfRibbon.SelectedIndex = 0; // Select Home tab } } } ``` ## Common Patterns ### Pattern 1: Ribbon with Backstage ```xaml <ribbon:SfRibbon x:Name="sfRibbon"> <!-- Backstage Menu --> <ribbon:SfRibbon.Backstage> <ribbon:RibbonBackstage> <ribbon:BackstageView> <ribbon:BackstageView.Items> <ribbon:BackstageViewItemHeader Header="New" /> <ribbon:BackstageViewItemHeader Header="Open" /> <ribbon:BackstageViewItemHeader Header="Save" /> <ribbon:BackstageViewTabItem Header="Settings"> <StackPanel Margin="20"> <TextBlock Text="Application Settings" FontSize="20" FontWeight="SemiBold" /> <!-- Settings content --> </StackPanel> </ribbon:BackstageViewTabItem> </ribbon:BackstageView.Items> </ribbon:BackstageView> </ribbon:RibbonBackstage> </ribbon:SfRibbon.Backstage> <!-- Tabs... --> </ribbon:SfRibbon> ``` ### Pattern 2: Simplified Layout with Overflow ```xaml <ribbon:SfRibbon x:Name="sfRibbon" LayoutModeOptions="Normal,Simplified" ActiveLayoutMode="Simplified"> <ribbon:SfRibbon.Tabs> <ribbon:RibbonTab Header="Home"> <ribbon:RibbonGroup Header="Actions"> <!-- Always visible in simplified --> <ribbon:RibbonButton Content="Save" Icon="Save" DisplayOptions="Normal,Simplified" /> <!-- Only in overflow menu when simplified --> <ribbon:RibbonButton Content="Export" Icon="Export" DisplayOptions="Normal,OverflowMenu" /> </ribbon:RibbonGroup> </ribbon:RibbonTab> </ribbon:SfRibbon.Tabs> </ribbon:SfRibbon> ``` ### Pattern 3: Contextual Tabs ```xaml <ribbon:SfRibbon x:Name="sfRibbon"> <!-- Regular Tabs --> <ribbon:SfRibbon.Tabs> <ribbon:RibbonTab Header="Home"> <!-- Content --> </ribbon:RibbonTab> </ribbon:SfRibbon.Tabs> <!-- Contextual Tab Groups (shown conditionally) --> <ribbon:SfRibbon.ContextualTabGroups> <ribbon:RibbonContextualTabGroup x:Name="ImageTools" Visibility="Collapsed" SelectFirstTabOnVisible="True" Background="LightBlue"> <ribbon:RibbonContextualTabGroup.Tabs> <ribbon:RibbonTab Header="Picture Format"> <ribbon:RibbonGroup Header="Adjust"> <ribbon:RibbonButton Content="Brightness" Icon="Brightness" /> <ribbon:RibbonButton Content="Contrast" Icon="Contrast" /> </ribbon:RibbonGroup> </ribbon:RibbonTab> </ribbon:RibbonContextualTabGroup.Tabs> </ribbon:RibbonContextualTabGroup> </ribbon:SfRibbon.ContextualTabGroups> </ribbon:SfRibbon> ``` ```csharp // Show contextual tabs when image is selected private void OnImageSelected(object sender, RoutedEventArgs e) { ImageTools.Visibility = Visibility.Visible; } private void OnImageDeselected(object sender, RoutedEventArgs e) { ImageTools.Visibility = Visibility.Collapsed; } ``` ### Pattern 4: Hosting Custom Controls ```xaml <ribbon:RibbonGroup Header="Font"> <ribbon:RibbonItemHost Margin="0,12,0,0"> <ribbon:RibbonItemHost.ItemTemplate> <ComboBox x:Name="FontComboBox" Width="150" PlaceholderText="Select Font"> <ComboBoxItem Content="Calibri" IsSelected="True" /> <ComboBoxItem Content="Arial" /> <ComboBoxItem Content="Segoe UI" /> </ComboBox> </ribbon:RibbonItemHost.ItemTemplate> </ribbon:RibbonItemHost> </ribbon:RibbonGroup> ``` ## Key Properties ### SfRibbon | Property | Type | Description | |----------|------|-------------| | `Tabs` | `RibbonTabCollection` | Collection of ribbon tabs | | `ContextualTabGroups` | `RibbonContextualTabGroupCollection` | Conditional tab groups | | `Backstage` | `RibbonBackstage` | Backstage menu (File menu) | | `RightPane` | `object` | Content for right pane area | | `SelectedTab` | `RibbonTab` | Currently selected tab | | `SelectedIndex` | `int` | Index of selected tab | | `LayoutModeOptions` | `LayoutModeOptions` | Available layout modes (Normal, Simplified) | | `ActiveLayoutMode` | `LayoutMode` | Current active layout (Normal or Simplified) | ### RibbonTab | Property | Type | Description | |----------|------|-------------| | `Header` | `object` | Tab header text/content | | `Items` | `RibbonGroupCollection` | Collection of ribbon groups | ### RibbonGroup | Property | Type | Description | |----------|------|-------------| | `Header` | `object` | Group header text | | `Items` | `RibbonItemCollection` | Collection of ribbon items | | `ShowLauncherButton` | `bool` | Show launcher button in group | | `LauncherButtonClick` | `event` | Launcher button click event | | `LauncherButtonCommand` | `ICommand` | Launcher button command | ### RibbonButton (and variants) | Property | Type | Description | |----------|------|-------------| | `Content` | `object` | Button label text | | `Icon` | `IconElement` | Button icon | | `AllowedSizeModes` | `RibbonElementSizeModes` | Allowed sizes (Small, Normal, Large) | | `DisplayOptions` | `DisplayOptions` | Layout visibility (Normal, Simplified, OverflowMenu) | | `Command` | `ICommand` | Button command | | `Flyout` | `FlyoutBase` | Flyout for dropdown/split buttons | ## Common Use Cases ### Use Case 1: Document Editor Ribbon Create a Word/Excel-style ribbon with formatting commands: - **Read:** [references/ribbon-items.md](references/ribbon-items.md) for button types - **Read:** [references/tabs-and-groups.md](references/tabs-and-groups.md) for organization ### Use Case 2: Application Settings Backstage Implement a settings panel in backstage view: - **Read:** [references/backstage.md](references/backstage.md) for backstage patterns ### Use Case 3: Compact Ribbon for Small Windows Enable simplified layout for space-constrained UIs:
View on GitHub
This SKILL.md is very large, so SkillsMP previews the first section here. View on GitHub