关于 syncfusion-wpf-accordion
用于在 WPF 中实现 Syncfusion SfAccordion 的技能,涵盖数据绑定、展开规则、选择、模板、样式和动画。
主要功能
- 01创建可展开的 WPF 分区
- 02将项目绑定到数据集合
- 03配置单项或多项展开
- 04自定义标题与内容模板
- 05设置展开按钮样式和动画
适用场景
- 01构建 FAQ 或设置面板
- 02按需显示分类内容
- 03将业务对象绑定到手风琴项目
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ syncfusion/ wpf-ui-components-skills --skill syncfusion-wpf-accordion安装后在 Claude Code 中输入/syncfusion-wpf-accordion确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/appearance-and-styling.mdgetting-started.mdpopulating-items.mdselecting-items.mdselection-mode.md详细介绍
实现 SfAccordion(WPF)
何时使用此技能
在用户需要以下功能时使用此技能:
- 在 WPF 中构建可折叠/展开的分区界面
- 显示可按需展开的分类内容
- 创建 Outlook 风格、FAQ 风格或设置面板风格的手风琴布局
- 将业务对象集合绑定到手风琴控件
- 控制可同时展开的项目数量
- 自定义手风琴项目的标题、内容、展开按钮或动画
组件概述
SfAccordion (ItemsControl)
└── SfAccordionItem (×N) (HeaderedContentControl)
├── Header — always visible (collapsed & expanded)
└── Content — visible only when expanded (IsSelected=true)
程序集: Syncfusion.SfAccordion.WPF
命名空间: Syncfusion.Windows.Controls.Layout
XAML 架构: http://schemas.syncfusion.com/wpf
文档与导航指南
入门
📄 阅读: references/getting-started.md
- 程序集引用和 NuGet 设置
- 使用 XAML 和 C# 创建控件
- 带有 Header 和 Content 的基本 SfAccordionItem
- 使用 SfSkinManager 设置主题
填充项目
📄 阅读: references/populating-items.md
- 通过
Items集合声明项目 - 通过
ItemsSource进行数据绑定 - Model + ViewModel + ObservableCollection
- 使用
DisplayMemberPath快速设置标题 HeaderTemplate/HeaderTemplateSelectorContentTemplate/ContentTemplateSelector
选择项目
📄 阅读: references/selecting-items.md
SelectedIndex— 按索引选择SelectedItem— 按实例选择(TwoWay 绑定)SelectedItems/SelectedIndices— 只读集合- 单个项目上的
IsSelected SelectAll()/UnselectAll()方法SelectedItemsChanged/SelectionChanged事件
选择模式
📄 阅读: references/selection-mode.md
One— 恰好展开一个(默认)OneOrMore— 可展开多个,且至少展开一个ZeroOrOne— 最多展开一个,也可以全部折叠ZeroOrMore— 可展开多个,也可以全部折叠- 选择指南:如何选择合适的模式
外观与样式
📄 阅读: references/appearance-and-styling.md
AccentBrush— 高亮颜色HeaderTemplate/ContentTemplateAccordionButtonStyle— 自定义展开箭头ItemContainerStyle— 单独设置每个项目的样式- 启用/禁用动画
- SfSkinManager 主题
快速入门
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;
常见模式
| 场景 | 方法 |
|---|---|
| 多个分区,每次展开一个 | SelectionMode="One"(默认) |
| 可同时展开多个项目的 FAQ | SelectionMode="ZeroOrMore" |
| 数据驱动的内容 | ItemsSource + HeaderTemplate + ContentTemplate |
| 高亮显示活动项目颜色 | AccentBrush |
| 自定义展开箭头 | 在 SfAccordionItem 上设置 AccordionButtonStyle |
| 缓慢的展开/折叠动画 | 在 ItemContainerStyle 中设置 ExpandableContentControl.Percentage |
| 跟踪已展开的项目 | SelectedItemsChanged 事件 |
关键属性
| 属性 | 类型 | 描述 |
|---|---|---|
SelectionMode | AccordionSelectionMode | One / OneOrMore / ZeroOrOne / ZeroOrMore |
SelectedIndex | int | 最近选中的项的索引 |
SelectedItem | object | 最近选中的项的实例 |
SelectedItems | 只读 | 当前选中的所有项实例 |
SelectedIndices | 只读 | 当前选中的所有项索引 |
ItemsSource | IEnumerable | 数据集合绑定 |
HeaderTemplate | DataTemplate | 所有项共用的标题模板 |
ContentTemplate | DataTemplate | 所有项共用的内容模板 |
HeaderTemplateSelector | DataTemplateSelector | 各项的标题模板 |
ContentTemplateSelector | DataTemplateSelector | 各项的内容模板 |
AccentBrush | Brush | 项高亮的强调色 |
ItemContainerStyle | Style | 应用于每个 SfAccordionItem 的样式 |
SfAccordionItem 属性:
| 属性 | 描述 |
|---|---|
Header | 始终可见的项标题 |
Content | 项展开时可见 |
IsSelected | true = 展开,false = 折叠 |
IsLocked | 只读;当项无法折叠时为 true |
AccordionButtonStyle | 展开器切换按钮的样式 |
评论
支持 Markdown