MCPInstall

syncfusion-wpf-navigation-drawer

Implements the Syncfusion WPF SfNavigationDrawer for slide-out navigation panels and sidebars. Use when building collapsible side panels, hierarchical navigation menus, or responsive drawer display modes (compact/expanded).

Installs
154
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-navigation-drawer
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads syncfusion-wpf-navigation-drawer automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Implementing Syncfusion WPF Navigation Drawer

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

When to Use This Skill

Use this skill when user need to:

  • Create sidebar navigation menus in WPF applications
  • Implement collapsible drawer navigation with hamburger menu
  • Build responsive navigation with compact and expanded modes
  • Add hierarchical navigation menu items with icons
  • Implement swipeable side panels
  • Create custom navigation views with headers and footers
  • Handle navigation events and selection
  • Support keyboard navigation in drawer menus
  • Build modern UI navigation patterns in WPF

Component Overview

The Syncfusion WPF Navigation Drawer (SfNavigationDrawer) is a sidebar navigation control that provides:

  • Three Display Modes: Default (collapsible), Compact (icon-only), Expanded (full width)
  • Flexible Positioning: Left, Right, Top, or Bottom placement
  • Built-in Navigation Items: Tab, Button, Header, Separator types with hierarchical support
  • Custom Views: Fully customizable header, content, and footer sections
  • Data Binding: Support for ItemsSource with hierarchical data binding
  • Rich Events: Opening, Opened, Closing, Closed, ItemClicked, ItemExpanded, ItemCollapsed
  • Keyboard Support: Full keyboard navigation (Tab, Arrow keys, Enter, Space)
  • Smooth Animations: SlideOnTop, Push, and Reveal transition effects
  • Responsive Design: Auto-switching between display modes based on available width

Use Cases:

  • Email client navigation (Inbox, Sent, Drafts with nested categories)
  • E-commerce app menus (Products, Cart, Orders with subcategories)
  • Banking app navigation (Accounts, Transfers, Payments)
  • Admin dashboards with multi-level navigation
  • Mobile-style navigation in desktop WPF apps

Documentation and Navigation Guide

Getting Started

📄 Read: references/getting-started.md Use when: First-time implementation, setting up the control, understanding basic structure

  • Installation and assembly deployment
  • Creating basic NavigationDrawer in XAML and C#
  • Adding content view and sidebar menu items
  • Setting up navigation items with icons
  • Minimal working example

Display Modes

📄 Read: references/display-modes.md Use when: Choosing between Default, Compact, or Expanded modes, implementing responsive navigation

  • Default mode (collapsible drawer with custom views)
  • Compact mode (narrow icon bar that expands on toggle)
  • Expanded mode (full-width sidebar)
  • Auto display mode switching based on window width
  • CompactModeWidth and ExpandedModeWidth configuration
  • ExpandedModeThresholdWidth for responsive behavior

Populating Data

📄 Read: references/populating-data.md Use when: Adding menu items, binding data sources, creating hierarchical navigation

  • Built-in NavigationItem properties (Header, Icon, Items)
  • ItemsSource data binding
  • Hierarchical data binding with nested items
  • IconTemplate and ItemTemplate customization
  • Different item types: Tab, Button, Header, Separator
  • DisplayMemberPath and IconMemberPath
  • IndentationWidth for sub-items
  • Popup support for sub-items

Custom Views and Customization

📄 Read: references/custom-views.md Use when: Creating custom drawer layouts, positioning drawer, adding animations

  • DrawerHeaderView, DrawerContentView, DrawerFooterView
  • DrawerWidth and DrawerHeight customization
  • Position property (Left, Right, Top, Bottom)
  • Swipe gestures and TouchThreshold
  • Transition animations (SlideOnTop, Push, Reveal)
  • AnimationDuration configuration
  • DrawerBackground customization
  • IsOpen property for programmatic control
  • ToggleDrawer() method

Header and Footer Customization

📄 Read: references/header-and-footer.md Use when: Customizing toggle button, header, or footer sections

  • ToggleButtonContentTemplate and ToggleButtonIconTemplate
  • IsToggleButtonVisible property
  • FooterItems collection
  • HeaderHeight and FooterHeight properties
  • Custom header and footer views in Default mode

Commands and Events

📄 Read: references/commands-and-events.md Use when: Handling drawer state changes, item clicks, navigation events

  • Opening and Opened events (with Cancel support)
  • Closing and Closed events (with Cancel support)
  • ItemClicked event (Compact/Expanded modes only)
  • ItemExpanded and ItemCollapsed events
  • Command binding with Command and CommandParameter
  • DelegateCommand implementation example

Selection Handling

📄 Read: references/handling-selection.md Use when: Managing selected items, tracking navigation state

  • SelectedItem property usage
  • Selection with NavigationItem
  • Selection with custom data objects
  • SelectionBackground customization

Keyboard Support

📄 Read: references/keyboard-support.md Use when: Implementing keyboard navigation, ensuring accessibility

  • Tab key navigation between elements
  • Up/Down arrow keys for item navigation
  • Enter and Space for item selection
  • Focus management

Quick Start Example

Basic Navigation Drawer with Items

<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>

Code-behind (C#)

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;

Common Patterns

Pattern 1: Responsive Navigation (Auto Mode Switching)

<syncfusion:SfNavigationDrawer DisplayMode="Expanded"
                               AutoChangeDisplayMode="True"
                               ExpandedModeThresholdWidth="700">
    <!-- Items -->
</syncfusion:SfNavigationDrawer>

When to use: Desktop apps that need to adapt to window resizing

Pattern 2: Hierarchical Navigation with Sub-items

<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)

Pattern 3: Custom Drawer with Header and Footer

<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

Pattern 4: Data Binding with ItemsSource

<syncfusion:SfNavigationDrawer DisplayMode="Compact"
                               ItemsSource="{Binding NavigationItems}"
                               DisplayMemberPath="Title"
                               IconMemberPath="Icon">
</syncfusion:SfNavigationDrawer>

When to use: Dynamic navigation menus from database or API

Key Properties

Essential Properties

PropertyTypeDescription
DisplayModeDisplayModeDefault, Compact, or Expanded
ItemsNavigationItemsCollectionCollection of NavigationItem objects
ContentViewobjectMain content area
IsOpenboolGets/sets drawer open state
SelectedItemobjectCurrently selected navigation item
PositionPositionLeft, Right, Top, Bottom (Default mode)

Display Mode Properties

PropertyTypeDefaultDescription
AutoChangeDisplayModeboolfalseAuto-switch modes based on width
ExpandedModeThresholdWidthdouble1007Width threshold for auto mode switching
CompactModeWidthdouble48Width in compact mode
ExpandedModeWidthdouble320Width in expanded mode

Customization Properties

PropertyTypeDescription
DrawerWidthdoubleDrawer width (Default mode, Left/Right)
DrawerHeightdoubleDrawer height (Default mode, Top/Bottom)
DrawerBackgroundBrushBackground color of drawer
HeaderHeightdoubleHeight of header section
FooterHeightdoubleHeight of footer section
IndentationWidthdoubleHorizontal spacing for sub-items

Animation Properties

PropertyTypeOptions
TransitionTransitionSlideOnTop, Push, Reveal
AnimationDurationTimeSpanDuration of open/close animation
EnableSwipeGestureboolEnable swipe to open/close
TouchThresholddoubleSwipe sensitivity (pixels)

Template Properties

PropertyTypeDescription
ToggleButtonContentTemplateDataTemplateCustomize toggle button content
ToggleButtonIconTemplateDataTemplateCustomize toggle button icon
ItemTemplateDataTemplateTemplate for navigation items
ItemTemplateSelectorDataTemplateSelectorDynamic template selection

Common Use Cases

Use Case 1: Email Client Navigation

Scenario: Multi-level inbox with Primary, Social, Promotions Solution: Use hierarchical NavigationItem with IsExpanded, Compact/Expanded modes Reference: references/populating-data.md

Use Case 2: Admin Dashboard

Scenario: Top-level menu (Dashboard, Users, Settings) with sub-sections Solution: Data binding with ItemsSource, hierarchical data structure Reference: references/populating-data.md

Use Case 3: Mobile-Style App

Scenario: Hamburger menu that slides over content Solution: Default mode with DrawerHeaderView, swipe gestures enabled Reference: references/custom-views.md

Use Case 4: Responsive Desktop App

Scenario: Auto-collapse to compact mode on narrow windows Solution: Expanded mode with AutoChangeDisplayMode=true Reference: references/display-modes.md

Use Case 5: Banking App

Scenario: Accounts, Transfers, Payments with event handling Solution: ItemClicked event, Command binding for navigation Reference: references/commands-and-events.md

Implementation Tips

  1. Choose the Right Display Mode:

    • Use Default for mobile-style overlays with custom views
    • Use Compact for icon-only sidebar that expands to full width
    • Use Expanded for always-visible full sidebar
  2. Use Built-in Items vs Custom Views:

    • Use NavigationItem (Compact/Expanded) for standard navigation menus
    • Use Custom Views (Default mode) for unique layouts
  3. Optimize Performance:

    • Use data binding with ItemsSource for large datasets
    • Implement ItemTemplateSelector for heterogeneous items
    • Keep hierarchies shallow (2-3 levels max)
  4. Handle State Properly:

    • Use Opening/Closing events to cancel state changes
    • Store SelectedItem for navigation state restoration
    • Handle ItemClicked for page navigation
  5. Ensure Accessibility:

    • Implement keyboard navigation (already built-in)
    • Provide meaningful Header text for screen readers
    • Use sufficient color contrast for SelectionBackground

FAQ

What does the syncfusion-wpf-navigation-drawer skill do?

Implements the Syncfusion WPF SfNavigationDrawer for slide-out navigation panels and sidebars. Use when building collapsible side panels, hierarchical navigation menus, or responsive drawer display modes (compact/expanded).

How do I install syncfusion-wpf-navigation-drawer?

Run npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-navigation-drawer in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-wpf-navigation-drawer/ (personal) or .claude/skills/syncfusion-wpf-navigation-drawer/ (project).

Which AI agents can use syncfusion-wpf-navigation-drawer?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is syncfusion-wpf-navigation-drawer safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains syncfusion-wpf-navigation-drawer?

It is published by syncfusion in syncfusion/wpf-ui-components-skills. It has 154 recorded installs.

More from syncfusion/wpf-ui-components-skills

View all →

syncfusion-wpf-theming

syncfusion/wpf-ui-components-skills

Implement and customize themes for Syncfusion WPF controls using SfSkinManager. Apply built-in themes (Windows 11, Fluent, Material, Office 2019), create custom themes with Theme Studio, and control visual effects like reveal animations and acrylic backgrounds. Use this skill whenever user needs to theme WPF applications, apply Syncfusion themes, customize colors/fonts, or configure theme-based visual effects and accessibility features.

Frontend & Design184 installs

syncfusion-wpf-datagrid

syncfusion/wpf-ui-components-skills

Implements Syncfusion WPF DataGrid (SfDataGrid) component for displaying and manipulating tabular data in Windows Presentation Foundation applications. Use this when working with data grids, table views, or data binding scenarios. Supports sorting, filtering, grouping, editing, Excel/PDF export, drag and drop, master-detail views, summaries, and extensive styling options.

Frontend & Design176 installs

syncfusion-wpf-carousel

syncfusion/wpf-ui-components-skills

Implements the Syncfusion WPF Carousel for displaying items in rotating or custom path interfaces with navigation support. Use when building image carousels, rotating galleries, or custom-path item displays with templates and data binding.

Frontend & Design164 installs

syncfusion-wpf-button

syncfusion/wpf-ui-components-skills

Implement Syncfusion WPF ButtonAdv controls for configurable button UIs. Use this when adding, configuring, or customizing a Syncfusion WPF ButtonAdv — including labels, icons, size modes, toggle/checkable behavior, MVVM command binding, multiline text, corner radius, IsDefault/IsCancel modes, icon templates, and themes.

Frontend & Design163 installs

syncfusion-wpf-combobox

syncfusion/wpf-ui-components-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design163 installs

syncfusion-wpf-color-palette

syncfusion/wpf-ui-components-skills

Open the skill to read its SKILL.md instructions.

Frontend & Design162 installs

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs