npx skills add ...
npx skills add syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-navigation-pane
Implement Syncfusion WPF GroupBar (Navigation Pane) for Outlook-style expandable category navigation. Use this when creating a navigation pane, GroupBar, sidebar with collapsible sections, or stack-mode navigation in WPF. Covers item hierarchy, visual modes, data binding, drag-and-drop, orientation, behavior, appearance, and themes.
npx skills add syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-navigation-pane
The GroupBar control implements a navigation pane similar to the Microsoft Outlook Bar. It hosts categorized collections of items and custom controls in expandable/collapsible sections. Supports multiple visual modes, data binding, drag-and-drop reordering, context menus, toolbars, and full theme support.
Assemblies: Syncfusion.Tools.WPF + Syncfusion.Shared.WPF
Namespace: Syncfusion.Windows.Tools.Controls
XAML Schema: xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
GroupBar, GroupBarItem, GroupView, GroupViewItem| Goal | Approach |
|---|---|
| Outlook-style navigation | VisualMode="StackMode" |
| Tree-style multi-expand | VisualMode="MultipleExpansion" |
| One-at-a-time expand | VisualMode="Default" |
| Collapsible bar | AllowCollapse="True" + VisualMode="StackMode" |
| Data-bound items | ItemsSource + ItemContainerStyle with HeaderText/Content setters |
| Custom item content | Place any Panel or UIElement as GroupBarItem.Content |
| List-view style items | GroupView with IsListViewMode="True" |
| Drag-reorder items | DragItemVisibility="True" |
| Resize navigation popup | PopupResizeDirection="Both" |
| Gripper for StackMode | ShowGripper="True" + VisualMode="StackMode" |
| Save/restore bar state | SaveBarState() / LoadBarState() / ResetBarState() |
| Property | Type | Description |
|---|---|---|
VisualMode | VisualMode | Default / MultipleExpansion / StackMode |
AllowCollapse | bool | Allow collapsing (StackMode) |
ShowGripper | bool | Show resize gripper (StackMode) |
ItemsSource | IEnumerable | Data-bound items |
ItemContainerStyle | Style | Style applied to each GroupBarItem |
DragItemVisibility | bool | Enable drag-and-drop reordering |
DragMarkerBrush | Brush | Color of drag insertion marker |
PopupResizeDirection | PopupResizeDirection | Navigation pane popup resize (Both/H/V/None) |
ItemContentLength | double | Height/width of selected item content area |
GroupBarHeaderStyle | Style | Style for GroupBar header border |
GroupBarItem.Header | string | Display text for item header |
GroupBarItem.HeaderImageSource | ImageSource | Icon in item header |
GroupBarItem.IsSelected | bool | Expand this item initially |
GroupBarItem.GroupBarItemCornerRadius | CornerRadius | Rounded corners on item header |
GroupView.IsListViewMode | bool | List-view style (vs icon style) |
GroupViewItem.Text | string | Text label for view item |
GroupViewItem.ImageSource | ImageSource | Icon for view item |
SaveOriginalState | bool | Auto-save state on load |
š Read: references/getting-started.md
š Read: references/groupbar-items.md
š Read: references/groupview-and-content.md
š Read: references/visual-modes.md
š Read: references/data-binding.md
š Read: references/orientation-and-layout.md
š Read: references/behavior-and-features.md
š Read: references/appearance.md
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
<syncfusion:GroupBar Height="300" Width="230" VisualMode="StackMode" Name="groupBar">
<syncfusion:GroupBarItem Header="Mailbox" HeaderImageSource="Images/mail.png">
<syncfusion:GroupView>
<syncfusion:GroupViewItem Text="Inbox" ImageSource="Images/inbox.png"/>
<syncfusion:GroupViewItem Text="Sent Items" ImageSource="Images/sent.png"/>
<syncfusion:GroupViewItem Text="Deleted" ImageSource="Images/trash.png"/>
</syncfusion:GroupView>
</syncfusion:GroupBarItem>
<syncfusion:GroupBarItem Header="Contacts">
<syncfusion:GroupView>
<syncfusion:GroupViewItem Text="All Contacts"/>
<syncfusion:GroupViewItem Text="Favorites"/>
</syncfusion:GroupView>
</syncfusion:GroupBarItem>
</syncfusion:GroupBar>using Syncfusion.Windows.Tools.Controls;
GroupBar groupBar = new GroupBar();
groupBar.VisualMode = VisualMode.StackMode;
GroupBarItem item = new GroupBarItem { Header = "Mailbox" };
GroupView view = new GroupView();
view.Items.Add(new GroupViewItem { Text = "Inbox" });
item.Content = view;
groupBar.Items.Add(item);
this.Content = groupBar;