Loading...
Loading...
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.
npx skill4agent add syncfusion/wpf-ui-components-skills syncfusion-wpf-radial-menuSyncfusion.Windows.Controls.NavigationSyncfusion.SfRadialMenu.WPF<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>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" });<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><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();
}// 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"/><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><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><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>| 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) |
| 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 |
| 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 |