Syncfusion wpf accordion
Skill syncfusion/wpf-ui-components-skills/skills/syncfusion-wpf-accordion
Skills for Syncfusion WPF controls. Enable AI-assisted development with comprehensive documentation, code examples, and best practices for 100+ UI controls including DataGrid, Charts, Scheduler, and more.
npx -y skills add syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-accordionAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 5 stars5 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Implement Syncfusion WPF SfAccordion for collapsible and expandable panel layouts. Use this when working with accordion controls, expandable panels, or collapsible section navigation in WPF. Covers populating items declaratively or via data binding, selection modes (One/OneOrMore/ZeroOrOne/ZeroOrMore), programmatic selection, appearance customization (AccentBrush, HeaderTemplate, ContentTemplate), and theming with SfSkinManager.
SKILL.md
5.9 KB, as published. Nobody here has run it
Implementing SfAccordion (WPF)
When to Use This Skill
Use this skill when the user needs to:
- Build collapsible/expandable section UI in WPF
- Display categorized content with expand-on-demand behavior
- Create Outlook-style, FAQ-style, or settings-panel accordion layouts
- Bind a business object collection to an accordion
- Control how many items can be expanded simultaneously
- Customize accordion item headers, content, expander buttons, or animation
Component Overview
SfAccordion (ItemsControl)
└── SfAccordionItem (×N) (HeaderedContentControl)
├── Header — always visible (collapsed & expanded)
└── Content — visible only when expanded (IsSelected=true)
Assembly: Syncfusion.SfAccordion.WPF
Namespace: Syncfusion.Windows.Controls.Layout
XAML Schema: http://schemas.syncfusion.com/wpf
Documentation and Navigation Guide
Getting Started
📄 Read: references/getting-started.md
- Assembly reference and NuGet setup
- XAML and C# control creation
- Basic SfAccordionItem with Header and Content
- Themes with SfSkinManager
Populating Items
📄 Read: references/populating-items.md
- Declarative items via
Itemscollection - Data binding via
ItemsSource - Model + ViewModel + ObservableCollection
DisplayMemberPathfor quick headersHeaderTemplate/HeaderTemplateSelectorContentTemplate/ContentTemplateSelector
Selecting Items
📄 Read: references/selecting-items.md
SelectedIndex— select by indexSelectedItem— select by instance (TwoWay binding)SelectedItems/SelectedIndices— read-only collectionsIsSelectedon individual itemsSelectAll()/UnselectAll()methodsSelectedItemsChanged/SelectionChangedevents
Selection Mode
📄 Read: references/selection-mode.md
One— exactly one expanded (default)OneOrMore— multiple expanded, at least one requiredZeroOrOne— at most one, all can collapseZeroOrMore— multiple, all can collapse- Decision guide: choosing the right mode
Appearance and Styling
📄 Read: references/appearance-and-styling.md
AccentBrush— highlight colorHeaderTemplate/ContentTemplateAccordionButtonStyle— expander arrow customizationItemContainerStyle— per-item styling- Animation enable/disable
- SfSkinManager themes
Quick Start
xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
<syncfusion:SfAccordion Width="300" Height="200">
<syncfusion:SfAccordionItem Header="WPF"
Content="Essential Studio for WPF"/>
<syncfusion:SfAccordionItem Header="Silverlight"
Content="Essential Studio for Silverlight"/>
<syncfusion:SfAccordionItem Header="WinRT"
Content="Essential Studio for WinRT" IsSelected="True"/>
</syncfusion:SfAccordion>
using Syncfusion.Windows.Controls.Layout;
SfAccordion accordion = new SfAccordion();
accordion.Items.Add(new SfAccordionItem { Header = "WPF", Content = "Essential Studio for WPF" });
accordion.Items.Add(new SfAccordionItem { Header = "Silverlight", Content = "Essential Studio for Silverlight" });
accordion.Items.Add(new SfAccordionItem { Header = "WinRT", Content = "Essential Studio for WinRT", IsSelected = true });
this.Content = accordion;
Common Patterns
| Scenario | Approach |
|---|---|
| Multiple sections, one open at a time | SelectionMode="One" (default) |
| FAQ where multiple can be open | SelectionMode="ZeroOrMore" |
| Data-driven content | ItemsSource + HeaderTemplate + ContentTemplate |
| Highlight active item color | AccentBrush |
| Custom expander arrow | AccordionButtonStyle on SfAccordionItem |
| Slow expand/collapse animation | ExpandableContentControl.Percentage in ItemContainerStyle |
| Track which items are expanded | SelectedItemsChanged event |
Key Properties
| Property | Type | Description |
|---|---|---|
SelectionMode | AccordionSelectionMode | One / OneOrMore / ZeroOrOne / ZeroOrMore |
SelectedIndex | int | Index of most recently selected item |
SelectedItem | object | Instance of most recently selected item |
SelectedItems | read-only | All currently selected item instances |
SelectedIndices | read-only | All currently selected item indices |
ItemsSource | IEnumerable | Data collection binding |
HeaderTemplate | DataTemplate | Shared header template for all items |
ContentTemplate | DataTemplate | Shared content template for all items |
HeaderTemplateSelector | DataTemplateSelector | Per-item header template |
ContentTemplateSelector | DataTemplateSelector | Per-item content template |
AccentBrush | Brush | Accent color for item highlight |
ItemContainerStyle | Style | Style applied to each SfAccordionItem |
SfAccordionItem properties:
| Property | Description |
|---|---|
Header | Always-visible item header |
Content | Visible when item is expanded |
IsSelected | true = expanded, false = collapsed |
IsLocked | Read-only; true when item cannot be collapsed |
AccordionButtonStyle | Style for the expander toggle button |