syncfusion-wpf-navigation-drawer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-wpf-navigation-drawer (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
The WPF Navigation Drawer control is a sidebar navigation component used to create intuitive and efficient navigation menus within applications. It supports compact and expanded display modes, allowing users to switch between them dynamically based on the available screen size. Additionally, the control offers a default mode that enables developers to define a fully custom pane view, providing greater flexibility in designing navigation experiences
Use this skill when user need to:
The Syncfusion WPF Navigation Drawer (SfNavigationDrawer) is a sidebar navigation control that provides:
Use Cases:
📄 Read: references/getting-started.md Use when: First-time implementation, setting up the control, understanding basic structure
📄 Read: references/display-modes.md Use when: Choosing between Default, Compact, or Expanded modes, implementing responsive navigation
📄 Read: references/populating-data.md Use when: Adding menu items, binding data sources, creating hierarchical navigation
📄 Read: references/custom-views.md Use when: Creating custom drawer layouts, positioning drawer, adding animations
📄 Read: references/header-and-footer.md Use when: Customizing toggle button, header, or footer sections
📄 Read: references/commands-and-events.md Use when: Handling drawer state changes, item clicks, navigation events
📄 Read: references/handling-selection.md Use when: Managing selected items, tracking navigation state
📄 Read: references/keyboard-support.md Use when: Implementing keyboard navigation, ensuring accessibility
<Window xmlns:syncfusion="http://schemas.syncfusion.com/wpf">
<syncfusion:SfNavigationDrawer x:Name="navigationDrawer"
DisplayMode="Expanded">
<!-- Navigation Items -->
<syncfusion:NavigationItem Header="Inbox" IsSelected="True">
<syncfusion:NavigationItem.Icon>
<Path Data="M32.032381,16.445429 L25.410999..." Fill="White"/>
</syncfusion:NavigationItem.Icon>
</syncfusion:NavigationItem>
<syncfusion:NavigationItem Header="Sent mail">
<syncfusion:NavigationItem.Icon>
<Path Data="M42.128046,6.7269681..." Fill="White"/>
</syncfusion:NavigationItem.Icon>
</syncfusion:NavigationItem>
<syncfusion:NavigationItem Header="Drafts">
<syncfusion:NavigationItem.Icon>
<Path Data="M6.9999996,48.353..." Fill="White"/>
</syncfusion:NavigationItem.Icon>
</syncfusion:NavigationItem>
<!-- Main Content -->
<syncfusion:SfNavigationDrawer.ContentView>
<Grid>
<Label Content="Content View"
HorizontalAlignment="Center"
VerticalAlignment="Center"/>
</Grid>
</syncfusion:SfNavigationDrawer.ContentView>
</syncfusion:SfNavigationDrawer>
</Window>using Syncfusion.UI.Xaml.NavigationDrawer;
// Create navigation drawer
SfNavigationDrawer navigationDrawer = new SfNavigationDrawer();
navigationDrawer.DisplayMode = DisplayMode.Expanded;
// Add items
navigationDrawer.Items.Add(new NavigationItem()
{
Header = "Inbox",
Icon = new Path() { Data = Geometry.Parse("M32.032381...") },
IsSelected = true
});
navigationDrawer.Items.Add(new NavigationItem()
{
Header = "Sent mail",
Icon = new Path() { Data = Geometry.Parse("M42.128046...") }
});
// Set content
Label label = new Label { Content = "Content View" };
navigationDrawer.ContentView = label;<syncfusion:SfNavigationDrawer DisplayMode="Expanded"
AutoChangeDisplayMode="True"
ExpandedModeThresholdWidth="700">
<!-- Items -->
</syncfusion:SfNavigationDrawer>When to use: Desktop apps that need to adapt to window resizing
<syncfusion:NavigationItem Header="Inbox" IsExpanded="True">
<syncfusion:NavigationItem.Icon>
<Path Data="..." Fill="White"/>
</syncfusion:NavigationItem.Icon>
<!-- Sub-items -->
<syncfusion:NavigationItem Header="Primary">
<syncfusion:NavigationItem.Icon>
<Path Data="..." Fill="White"/>
</syncfusion:NavigationItem.Icon>
</syncfusion:NavigationItem>
<syncfusion:NavigationItem Header="Social">
<syncfusion:NavigationItem.Icon>
<Path Data="..." Fill="White"/>
</syncfusion:NavigationItem.Icon>
</syncfusion:NavigationItem>
</syncfusion:NavigationItem>When to use: Multi-level navigation menus (e.g., email categories, product categories)
<syncfusion:SfNavigationDrawer DisplayMode="Default" DrawerWidth="300">
<syncfusion:SfNavigationDrawer.DrawerHeaderView>
<Grid Background="#31ade9">
<Label Content="User Profile" />
</Grid>
</syncfusion:SfNavigationDrawer.DrawerHeaderView>
<syncfusion:SfNavigationDrawer.DrawerContentView>
<ListBox ItemsSource="{Binding MenuItems}"/>
</syncfusion:SfNavigationDrawer.DrawerContentView>
<syncfusion:SfNavigationDrawer.DrawerFooterView>
<Button Content="Logout" />
</syncfusion:SfNavigationDrawer.DrawerFooterView>
<syncfusion:SfNavigationDrawer.ContentView>
<Grid><!-- Main content --></Grid>
</syncfusion:SfNavigationDrawer.ContentView>
</syncfusion:SfNavigationDrawer>When to use: Apps needing custom drawer layouts beyond built-in items
<syncfusion:SfNavigationDrawer DisplayMode="Compact"
ItemsSource="{Binding NavigationItems}"
DisplayMemberPath="Title"
IconMemberPath="Icon">
</syncfusion:SfNavigationDrawer>When to use: Dynamic navigation menus from database or API
| Property | Type | Description |
|---|---|---|
DisplayMode | DisplayMode | Default, Compact, or Expanded |
Items | NavigationItemsCollection | Collection of NavigationItem objects |
ContentView | object | Main content area |
IsOpen | bool | Gets/sets drawer open state |
SelectedItem | object | Currently selected navigation item |
Position | Position | Left, Right, Top, Bottom (Default mode) |
| Property | Type | Default | Description |
|---|---|---|---|
AutoChangeDisplayMode | bool | false | Auto-switch modes based on width |
ExpandedModeThresholdWidth | double | 1007 | Width threshold for auto mode switching |
CompactModeWidth | double | 48 | Width in compact mode |
ExpandedModeWidth | double | 320 | Width in expanded mode |
| Property | Type | Description |
|---|---|---|
DrawerWidth | double | Drawer width (Default mode, Left/Right) |
DrawerHeight | double | Drawer height (Default mode, Top/Bottom) |
DrawerBackground | Brush | Background color of drawer |
HeaderHeight | double | Height of header section |
FooterHeight | double | Height of footer section |
IndentationWidth | double | Horizontal spacing for sub-items |
| Property | Type | Options |
|---|---|---|
Transition | Transition | SlideOnTop, Push, Reveal |
AnimationDuration | TimeSpan | Duration of open/close animation |
EnableSwipeGesture | bool | Enable swipe to open/close |
TouchThreshold | double | Swipe sensitivity (pixels) |
| Property | Type | Description |
|---|---|---|
ToggleButtonContentTemplate | DataTemplate | Customize toggle button content |
ToggleButtonIconTemplate | DataTemplate | Customize toggle button icon |
ItemTemplate | DataTemplate | Template for navigation items |
ItemTemplateSelector | DataTemplateSelector | Dynamic template selection |
Scenario: Multi-level inbox with Primary, Social, Promotions Solution: Use hierarchical NavigationItem with IsExpanded, Compact/Expanded modes Reference: references/populating-data.md
Scenario: Top-level menu (Dashboard, Users, Settings) with sub-sections Solution: Data binding with ItemsSource, hierarchical data structure Reference: references/populating-data.md
Scenario: Hamburger menu that slides over content Solution: Default mode with DrawerHeaderView, swipe gestures enabled Reference: references/custom-views.md
Scenario: Auto-collapse to compact mode on narrow windows Solution: Expanded mode with AutoChangeDisplayMode=true Reference: references/display-modes.md
Scenario: Accounts, Transfers, Payments with event handling Solution: ItemClicked event, Command binding for navigation Reference: references/commands-and-events.md
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.