Implementing Syncfusion Blazor Menu Bar
When to Use This Skill
Use this skill when you need to:
- Create horizontal or vertical navigation menus in Blazor applications
- Add dropdown submenus with multiple nesting levels
- Display icons in menu items
- Handle user interactions with menu events
- Bind menu items to data sources
- Apply animations and custom styling to menus
- Build professional menu bars for web applications
Component Overview
The Syncfusion Blazor Menu Bar component provides a flexible, feature-rich menu system for navigation. It supports:
- Hierarchical structure: Multiple levels of nested menu items
- Data binding: Self-referential data source mapping
- Events: Comprehensive event handling (Created, OnOpen, OnClose, Opened, Closed, ItemSelected, OnItemRender)
- Styling: Icons, custom CSS, separators, and disabled states
- Animation: Multiple animation effects (SlideDown, ZoomIn, FadeIn, None)
- Orientation: Horizontal (default) or Vertical layout
- Customization: Rich API for dynamic menu management
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Installation and package setup (NuGet packages)
- Prerequisites and system requirements
- Blazor WebAssembly App creation
- Basic menu bar implementation
- Imports and service registration
- Theme stylesheet and script resources
Menu Items and Data Binding
📄 Read: references/menu-items-and-data-binding.md
- MenuItem structure and properties (Text, Url, Separator, Disabled)
- Creating hardcoded menu structures
- Self-referential data source binding
- MenuFieldSettings configuration (ItemId, ParentId, Text, Children)
- Custom MenuItem classes and data models
- Hierarchical menu creation patterns
Events and Interactions
📄 Read: references/events-and-interactions.md
- Available events (Created, OnItemRender, OnOpen, OnClose, Opened, Closed, ItemSelected)
- MenuEvents component setup
- Event handler implementation
- TValue specification requirements
- Capturing selected items and item data
- User interaction patterns
Icons and Styling
📄 Read: references/icons-and-styling.md
- Adding icons with IconCss property
- Icon positioning and placement
- CSS custom icons (content, unicode)
- Separators in menu items
- Custom CSS classes
- Navigation links with Url property
- Disabled menu items
Animation and Orientation
📄 Read: references/animation-and-orientation.md
- MenuAnimationSettings configuration
- Animation effects (SlideDown, ZoomIn, FadeIn, None)
- Duration customization
- Orientation property (Horizontal, Vertical)
- RTL support
- Responsive menu behavior
Advanced Scenarios and Customization
📄 Read: references/advanced-scenarios.md
- ShowItemOnClick property for click-based opening
- Add/Remove menu items dynamically
- Enable/Disable menu items
- Menu templates and custom rendering
- Performance considerations
- Common patterns and best practices
API Reference
📄 Read: references/api-reference.md
- Complete SfMenu component properties and methods
- MenuItem component properties and structure
- MenuAnimationSettings and MenuEffect enums
- Orientation enum (Horizontal, Vertical)
- MenuEvents and MenuEventArgs documentation
- MenuFieldSettings for data binding
- MenuTemplates for custom rendering
- Complete integration example
Quick Start Example
@using Syncfusion.Blazor.Navigations
<SfMenu TValue="MenuItem">
<MenuItems>
<MenuItem Text="File">
<MenuItems>
<MenuItem Text="Open"></MenuItem>
<MenuItem Text="Save"></MenuItem>
<MenuItem Text="Exit"></MenuItem>
</MenuItems>
</MenuItem>
<MenuItem Text="Edit">
<MenuItems>
<MenuItem Text="Cut"></MenuItem>
<MenuItem Text="Copy"></MenuItem>
<MenuItem Text="Paste"></MenuItem>
</MenuItems>
</MenuItem>
<MenuItem Text="Help"></MenuItem>
</MenuItems>
</SfMenu>
Common Patterns
Pattern 1: Simple Hardcoded Menu
Use direct MenuItem components for small, static menus. This is the simplest approach and requires no data binding setup.
Pattern 2: Data-Bound Menu from List
Use MenuFieldSettings to bind a List to your menu. Perfect for dynamic menus sourced from databases or APIs.
Pattern 3: Self-Referential Data
Map ParentId relationships in flat data to create hierarchical menus. Ideal for category/subcategory structures.
Pattern 4: Event-Driven Menus
Use MenuEvents to respond to user actions (Created, ItemSelected, OnOpen, OnClose). Essential for tracking user navigation.
Pattern 5: Styled and Animated Menus
Combine IconCss, MenuAnimationSettings, and Orientation for visually appealing, professional menus.
Key Properties
| Property |
Purpose |
Common Values |
TValue |
Generic type for menu items |
MenuItem, custom classes |
Orientation |
Menu layout direction |
Horizontal (default), Vertical |
ShowItemOnClick |
Open submenus on click instead of hover |
true, false (default) |
MenuAnimationSettings |
Animation configuration |
SlideDown, ZoomIn, FadeIn |
MenuFieldSettings |
Data binding field mappings |
ItemId, Text, ParentId, Children |
MenuEvents |
Event handlers |
Created, OnOpen, ItemSelected, etc. |
Next Steps
- Setup: Start with the Getting Started reference for installation
- Create: Choose a menu structure (hardcoded, data-bound, or hierarchical)
- Enhance: Add events, styling, and animations as needed
- Test: Verify menu navigation and interactions work correctly
1---2name: syncfusion-blazor-menu-bar3description: Implement navigation menus using Syncfusion Blazor Menu Bar component. Use this skill to create horizontal or vertical menus with submenus, icons, events, animations, and data binding. Essential for building professional menu bars in Blazor applications.4---5
6# Implementing Syncfusion Blazor Menu Bar
7
8## When to Use This Skill
9
10Use this skill when you need to:
11- Create horizontal or vertical navigation menus in Blazor applications
12- Add dropdown submenus with multiple nesting levels
13- Display icons in menu items
14- Handle user interactions with menu events
15- Bind menu items to data sources
16- Apply animations and custom styling to menus
17- Build professional menu bars for web applications
18
19## Component Overview
20
21The Syncfusion Blazor Menu Bar component provides a flexible, feature-rich menu system for navigation. It supports:
22- **Hierarchical structure**: Multiple levels of nested menu items
23- **Data binding**: Self-referential data source mapping
24- **Events**: Comprehensive event handling (Created, OnOpen, OnClose, Opened, Closed, ItemSelected, OnItemRender)
25- **Styling**: Icons, custom CSS, separators, and disabled states
26- **Animation**: Multiple animation effects (SlideDown, ZoomIn, FadeIn, None)
27- **Orientation**: Horizontal (default) or Vertical layout
28- **Customization**: Rich API for dynamic menu management
29
30## Documentation and Navigation Guide
31
32### Getting Started
33📄 **Read:** [references/getting-started.md](references/getting-started.md)
34- Installation and package setup (NuGet packages)
35- Prerequisites and system requirements
36- Blazor WebAssembly App creation
37- Basic menu bar implementation
38- Imports and service registration
39- Theme stylesheet and script resources
40
41### Menu Items and Data Binding
42📄 **Read:** [references/menu-items-and-data-binding.md](references/menu-items-and-data-binding.md)
43- MenuItem structure and properties (Text, Url, Separator, Disabled)
44- Creating hardcoded menu structures
45- Self-referential data source binding
46- MenuFieldSettings configuration (ItemId, ParentId, Text, Children)
47- Custom MenuItem classes and data models
48- Hierarchical menu creation patterns
49
50### Events and Interactions
51📄 **Read:** [references/events-and-interactions.md](references/events-and-interactions.md)
52- Available events (Created, OnItemRender, OnOpen, OnClose, Opened, Closed, ItemSelected)
53- MenuEvents component setup
54- Event handler implementation
55- TValue specification requirements
56- Capturing selected items and item data
57- User interaction patterns
58
59### Icons and Styling
60📄 **Read:** [references/icons-and-styling.md](references/icons-and-styling.md)
61- Adding icons with IconCss property
62- Icon positioning and placement
63- CSS custom icons (content, unicode)
64- Separators in menu items
65- Custom CSS classes
66- Navigation links with Url property
67- Disabled menu items
68
69### Animation and Orientation
70📄 **Read:** [references/animation-and-orientation.md](references/animation-and-orientation.md)
71- MenuAnimationSettings configuration
72- Animation effects (SlideDown, ZoomIn, FadeIn, None)
73- Duration customization
74- Orientation property (Horizontal, Vertical)
75- RTL support
76- Responsive menu behavior
77
78### Advanced Scenarios and Customization
79📄 **Read:** [references/advanced-scenarios.md](references/advanced-scenarios.md)
80- ShowItemOnClick property for click-based opening
81- Add/Remove menu items dynamically
82- Enable/Disable menu items
83- Menu templates and custom rendering
84- Performance considerations
85- Common patterns and best practices
86
87### API Reference
88📄 **Read:** [references/api-reference.md](references/api-reference.md)
89- Complete SfMenu component properties and methods
90- MenuItem component properties and structure
91- MenuAnimationSettings and MenuEffect enums
92- Orientation enum (Horizontal, Vertical)
93- MenuEvents and MenuEventArgs documentation
94- MenuFieldSettings for data binding
95- MenuTemplates for custom rendering
96- Complete integration example
97
98## Quick Start Example
99
100```razor
101@using Syncfusion.Blazor.Navigations
102
103<SfMenu TValue="MenuItem">
104 <MenuItems>
105 <MenuItem Text="File">
106 <MenuItems>
107 <MenuItem Text="Open"></MenuItem>
108 <MenuItem Text="Save"></MenuItem>
109 <MenuItem Text="Exit"></MenuItem>
110 </MenuItems>
111 </MenuItem>
112 <MenuItem Text="Edit">
113 <MenuItems>
114 <MenuItem Text="Cut"></MenuItem>
115 <MenuItem Text="Copy"></MenuItem>
116 <MenuItem Text="Paste"></MenuItem>
117 </MenuItems>
118 </MenuItem>
119 <MenuItem Text="Help"></MenuItem>
120 </MenuItems>
121</SfMenu>
122```
123
124## Common Patterns
125
126### Pattern 1: Simple Hardcoded Menu
127Use direct MenuItem components for small, static menus. This is the simplest approach and requires no data binding setup.
128
129### Pattern 2: Data-Bound Menu from List
130Use MenuFieldSettings to bind a List<T> to your menu. Perfect for dynamic menus sourced from databases or APIs.
131
132### Pattern 3: Self-Referential Data
133Map ParentId relationships in flat data to create hierarchical menus. Ideal for category/subcategory structures.
134
135### Pattern 4: Event-Driven Menus
136Use MenuEvents to respond to user actions (Created, ItemSelected, OnOpen, OnClose). Essential for tracking user navigation.
137
138### Pattern 5: Styled and Animated Menus
139Combine IconCss, MenuAnimationSettings, and Orientation for visually appealing, professional menus.
140
141## Key Properties
142
143| Property | Purpose | Common Values |
144|----------|---------|----------------|
145| `TValue` | Generic type for menu items | `MenuItem`, custom classes |
146| `Orientation` | Menu layout direction | `Horizontal` (default), `Vertical` |
147| `ShowItemOnClick` | Open submenus on click instead of hover | `true`, `false` (default) |
148| `MenuAnimationSettings` | Animation configuration | SlideDown, ZoomIn, FadeIn |
149| `MenuFieldSettings` | Data binding field mappings | ItemId, Text, ParentId, Children |
150| `MenuEvents` | Event handlers | Created, OnOpen, ItemSelected, etc. |
151
152## Next Steps
153
1541. **Setup**: Start with the Getting Started reference for installation
1552. **Create**: Choose a menu structure (hardcoded, data-bound, or hierarchical)
1563. **Enhance**: Add events, styling, and animations as needed
1574. **Test**: Verify menu navigation and interactions work correctly