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