syncfusion-wpf-radial-menu
Implements the Syncfusion WPF SfRadialMenu for circular/contextual menu layouts and hierarchical circular navigation. Use when you need drill-down circular menus, radial item layouts, or compact contextual command sets.
How do I install this agent skill?
npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-radial-menuIs this agent skill safe to install?
- Gen Agent Trust Hubpass
The skill is a comprehensive technical guide for implementing the Syncfusion WPF Radial Menu. It contains code snippets, architectural overviews, and styling guides that follow standard software development practices. No security risks or malicious patterns were detected.
- Socketpass
No alerts
- Snykpass
Risk: LOW · No issues
What does this agent skill do?
Implementing Syncfusion WPF Radial Menu
The Syncfusion WPF Radial Menu (SfRadialMenu) displays a hierarchical menu in a circular layout, exposing more menu items in the same space than traditional menus. It's ideal for context menus, tool palettes, and touch-enabled interfaces.
When to Use This Skill
Use this skill when the user needs to:
- Implement a radial menu (circular menu layout) in WPF applications
- Create context menus with hierarchical circular navigation
- Display menu items in a circular layout around a center point
- Implement drill-down navigation in a radial pattern
- Create color palettes with radial menu structure
- Build touch-friendly circular menus for kiosk or tablet applications
- Show more menu options in the same space compared to traditional linear menus
Component Overview
SfRadialMenu is a circular menu control that arranges menu items radially around a center point. It supports:
- Hierarchical navigation with drill-down capability
- Data binding with business object collections
- Custom and default layout modes
- Icon customization for center and menu items
- Extensive appearance and styling options
- Color palette support with SfRadialColorItem
- Tooltip configuration
- Command binding and event handling
Namespace: Syncfusion.Windows.Controls.Navigation
Assembly: Syncfusion.SfRadialMenu.WPF
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Namespace and assembly setup
- Basic XAML and code-behind implementation
- Opening and closing the menu with Show() and Close() methods
- Event handling: Opened, Closed, Navigating
- IsOpen property for initial state
- Theme support with SfSkinManager
Populating Items and Data Binding
📄 Read: references/populating-items.md
- Binding ItemsSource to business object collections
- DisplayMemberPath for header text
- CommandPath for command binding
- ItemTemplate for custom item appearance
- DrillDownItem for tracking navigation
- EnableFreeRotation for manual rotation
- Command and CommandParameter properties
- CloseOnExecute behavior
- CheckMode options (None, CheckBox, Radio)
- GroupName for radio button groups
- IsChecked for checkbox/radio states
- SfRadialMenuItem events (Click, Checked, UnChecked)
Layout Configuration
📄 Read: references/layout-types.md
- Default layout type (automatic segmentation)
- Custom layout type with VisibleSegmentsCount
- SegmentIndex for precise item positioning
- Controlling segment distribution
- Layout type selection guide
Icons and Visual Elements
📄 Read: references/icons.md
- Center Icon property for menu center customization
- SfRadialMenuItem Icon property for item icons
- Using Image elements and custom UIElements
- Icon sizing and stretching options
Appearance and Styling
📄 Read: references/appearance-and-styling.md
- RadiusX and RadiusY for menu size
- CenterRimRadiusFactor for inner circle size
- Rim brushes: RimBackground, RimActiveBrush, RimInactiveBrush, RimHoverBrush
- IsExpanderVisible for showing/hiding expander arrows
- RimRadiusFactor for outer rim thickness
- Per-item customization: MenuBackgroundColor, MenuMouseOverBackgroundColor
- ShowMouseOverStyle property
- CenterBackButtonForeground for navigation button
- Separator styling: SeparatorBackground, SeparatorWidth
- Stroke properties: StrokeThickness, MouseOverRimStrokeThickness
- MouseOverRimStyle for advanced hover customization
Tooltips
📄 Read: references/tooltips.md
- ToolTip property for item tooltips
- ToolTipPlacement options (None, Left, Top, Right, Bottom)
- Positioning tooltips relative to the menu
Color Palette
📄 Read: references/color-palette.md
- SfRadialColorItem for color selection
- Creating hierarchical color palettes
- Nested color items for color variants
- Building color picker interfaces
Quick Start Example
Basic Radial Menu in XAML
<Window xmlns:navigation="clr-namespace:Syncfusion.Windows.Controls.Navigation;assembly=Syncfusion.SfRadialMenu.Wpf">
<Grid>
<navigation:SfRadialMenu IsOpen="True">
<navigation:SfRadialMenuItem Header="Bold"/>
<navigation:SfRadialMenuItem Header="Cut"/>
<navigation:SfRadialMenuItem Header="Copy"/>
<navigation:SfRadialMenuItem Header="Paste"/>
</navigation:SfRadialMenu>
</Grid>
</Window>
Basic Radial Menu in Code-Behind
using Syncfusion.Windows.Controls.Navigation;
SfRadialMenu radialMenu = new SfRadialMenu();
radialMenu.IsOpen = true;
radialMenu.Items.Add(new SfRadialMenuItem() { Header = "Bold" });
radialMenu.Items.Add(new SfRadialMenuItem() { Header = "Cut" });
radialMenu.Items.Add(new SfRadialMenuItem() { Header = "Copy" });
radialMenu.Items.Add(new SfRadialMenuItem() { Header = "Paste" });
Hierarchical Menu with Sub-Items
<navigation:SfRadialMenu IsOpen="True">
<navigation:SfRadialMenuItem Header="Format">
<navigation:SfRadialMenuItem Header="Bold"/>
<navigation:SfRadialMenuItem Header="Italic"/>
<navigation:SfRadialMenuItem Header="Underline"/>
</navigation:SfRadialMenuItem>
<navigation:SfRadialMenuItem Header="Edit">
<navigation:SfRadialMenuItem Header="Cut"/>
<navigation:SfRadialMenuItem Header="Copy"/>
<navigation:SfRadialMenuItem Header="Paste"/>
</navigation:SfRadialMenuItem>
<navigation:SfRadialMenuItem Header="Undo"/>
<navigation:SfRadialMenuItem Header="Redo"/>
</navigation:SfRadialMenu>
Common Patterns
Opening Menu on Button Click
<Grid>
<navigation:SfRadialMenu x:Name="radialMenu">
<navigation:SfRadialMenuItem Header="Bold"/>
<navigation:SfRadialMenuItem Header="Copy"/>
<navigation:SfRadialMenuItem Header="Paste"/>
</navigation:SfRadialMenu>
<Button Content="Open Menu" Click="OpenMenu_Click"/>
</Grid>
private void OpenMenu_Click(object sender, RoutedEventArgs e)
{
radialMenu.Show();
}
Data Binding with Business Objects
// Model
public class EditorCommand
{
public string Name { get; set; }
public string IconPath { get; set; }
public ICommand Command { get; set; }
}
// ViewModel
public class EditorViewModel
{
public List<EditorCommand> Commands { get; set; }
public EditorViewModel()
{
Commands = new List<EditorCommand>
{
new EditorCommand { Name = "Bold", IconPath = "bold.png" },
new EditorCommand { Name = "Copy", IconPath = "copy.png" },
new EditorCommand { Name = "Paste", IconPath = "paste.png" }
};
}
}
<navigation:SfRadialMenu IsOpen="True"
ItemsSource="{Binding Commands}"
DisplayMemberPath="Name"
CommandPath="Command"/>
Custom Layout with Specific Positioning
<navigation:SfRadialMenu IsOpen="True"
LayoutType="Custom"
VisibleSegmentsCount="8">
<navigation:SfRadialMenuItem Header="Item 1" SegmentIndex="0"/>
<navigation:SfRadialMenuItem Header="Item 2" SegmentIndex="2"/>
<navigation:SfRadialMenuItem Header="Item 3" SegmentIndex="4"/>
<navigation:SfRadialMenuItem Header="Item 4" SegmentIndex="6"/>
</navigation:SfRadialMenu>
Styling with Rim Colors
<navigation:SfRadialMenu IsOpen="True"
RimBackground="LightBlue"
RimActiveBrush="Orange"
RimHoverBrush="DarkOrange"
CenterRimRadiusFactor="0.3">
<navigation:SfRadialMenuItem Header="Bold"/>
<navigation:SfRadialMenuItem Header="Copy"/>
<navigation:SfRadialMenuItem Header="Paste"/>
</navigation:SfRadialMenu>
Menu Items with Commands and Parameters
<navigation:SfRadialMenu IsOpen="True">
<navigation:SfRadialMenuItem Header="Bold"
Command="{Binding BoldCommand}"
CommandParameter="Bold"
CloseOnExecute="True"/>
<navigation:SfRadialMenuItem Header="Copy"
Command="{Binding CopyCommand}"
CommandParameter="Copy"
CloseOnExecute="True"/>
</navigation:SfRadialMenu>
Key Properties and Events
SfRadialMenu Properties
| Property | Type | Description |
|---|---|---|
| IsOpen | bool | Gets or sets whether the radial menu is open |
| ItemsSource | IEnumerable | Business object collection for data binding |
| DisplayMemberPath | string | Property path for item headers |
| CommandPath | string | Property path for item commands |
| LayoutType | LayoutType | Default or Custom layout mode |
| VisibleSegmentsCount | int | Number of segments in Custom layout |
| EnableFreeRotation | bool | Allows manual rotation of the menu |
| RadiusX | double | Horizontal radius of the menu |
| RadiusY | double | Vertical radius of the menu |
| RimBackground | Brush | Outer rim background color |
| RimActiveBrush | Brush | Active expander rim color |
| RimHoverBrush | Brush | Hover state rim color |
| CenterRimRadiusFactor | double | Inner circle size (0.0 to 1.0) |
SfRadialMenuItem Properties
| Property | Type | Description |
|---|---|---|
| Header | object | Content displayed in the menu item |
| Icon | UIElement | Custom icon for the item |
| Command | ICommand | Command to execute on click |
| CommandParameter | object | Parameter passed to the command |
| SegmentIndex | int | Position in Custom layout mode |
| CloseOnExecute | bool | Close menu after item click |
| CheckMode | CheckMode | None, CheckBox, or Radio behavior |
| IsChecked | bool | Checked state for CheckBox/Radio |
| GroupName | string | Radio button group name |
| ToolTip | string | Tooltip text |
| ToolTipPlacement | Placement | Tooltip position |
| MenuBackgroundColor | Brush | Item background color |
Events
| Event | Description |
|---|---|
| Opened | Fired when the radial menu opens |
| Closed | Fired when the radial menu closes |
| Navigating | Fired when navigating into sub-items (cancellable) |
| Click (MenuItem) | Fired when a menu item is clicked |
| Checked (MenuItem) | Fired when a CheckBox/Radio item is checked |
| UnChecked (MenuItem) | Fired when a CheckBox item is unchecked |
Common Use Cases
1. Context Menu for Text Editor
Create a radial menu with formatting options (Bold, Italic, Underline, Font Size, Color) that appears on right-click.
2. Graphics Editor Tool Palette
Implement a tool selector with drawing tools (Pen, Brush, Eraser, Shapes) in a circular layout.
3. Color Picker with Radial Layout
Build a color palette using SfRadialColorItem with primary colors at the first level and shades at the second level.
4. Touch-Enabled Kiosk Navigation
Design a touch-friendly navigation menu for kiosk applications where circular layout provides better accessibility.
5. Command Palette with Sub-Commands
Create a hierarchical command menu where top-level items represent categories and sub-items are specific commands.
6. Quick Action Menu
Implement a floating action button that opens a radial menu with common actions (Edit, Delete, Share, More).
Implementation Guidance
When the user wants to implement a radial menu:
- Start with the basics → Guide them to getting-started.md for setup and basic implementation
- For data binding → Direct them to populating-items.md for ItemsSource, templates, and commands
- For precise layout control → Show them layout-types.md for Custom layout and SegmentIndex
- For visual customization → Point to icons.md and appearance-and-styling.md
- For color selection UI → Guide to color-palette.md for SfRadialColorItem usage
- For tooltips → Refer to tooltips.md for tooltip configuration
Always consider:
- Space constraints: Radial menus expose more items in limited space
- Touch vs mouse: Larger radius for touch interfaces
- Hierarchy depth: Keep menu levels to 2-3 for usability
- Item count: Optimal range is 4-8 items per level
- Visual feedback: Use RimHoverBrush and MenuMouseOverBackgroundColor for clear hover states
How can the creator link this skill?
Add the canonical catalog link to the repository README so users can inspect current installs and available audits. The publishing guide covers the complete discovery path.
<a href="https://skillzs.dev/skills/syncfusion/wpf-ui-components-skills/syncfusion-wpf-radial-menu">View syncfusion-wpf-radial-menu on skillZs</a>