mcpField
S
syncfusion-wpf-menu

syncfusion-wpf-menu

github.com/syncfusion开发5159 次安装1 周前更新
代码仓库

关于 syncfusion-wpf-menu

面向构建 WPF 应用菜单的 Syncfusion MenuAdv 技能,涵盖嵌套菜单、数据绑定与 MVVM 命令等实现方式,并提供主题和交互配置指引。

主要功能

  1. 01创建嵌套菜单项
  2. 02绑定层级数据集合
  3. 03配置图标与快捷键标签
  4. 04支持复选与单选菜单项
  5. 05绑定 ICommand 命令
  6. 06设置方向与子菜单展开方式

适用场景

  1. 01构建 File、Edit 等应用菜单
  2. 02从数据源动态生成菜单
  3. 03用 MVVM 命令处理菜单操作

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/wpf-ui-components-skills --skill syncfusion-wpf-menu

安装后在 Claude Code 中输入/syncfusion-wpf-menu确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
appearance.md
commands.md
data-binding.md
getting-started.md
menu-item-features.md
orientation-and-expand-mode.md

详细介绍

实现 MenuAdv(WPF)

何时使用此技能

当用户需要执行以下操作时,请使用此技能:

  • 构建应用程序菜单栏(文件、编辑、视图……),并添加嵌套子菜单
  • 为菜单项添加图标、键盘快捷键标签或分隔符
  • 创建可勾选菜单项(复选框或单选按钮样式)
  • 通过 ItemsSource 将分层数据集合绑定到菜单
  • 将菜单项连接到 ICommand 实现(MVVM 模式)
  • 切换菜单的水平和垂直方向
  • 控制子菜单的打开方式(单击或鼠标悬停)

组件概览

MenuAdv                               (root menu bar container)
├── MenuItemAdv  (×N)                 (top-level or nested item)
│   ├── Header                        — display text
│   ├── Icon                          — image/UIElement on left
│   ├── InputGestureText              — shortcut label (e.g. "Ctrl+N")
│   ├── IsCheckable / CheckIconType   — checkbox or radio button mode
│   ├── Command / CommandParameter    — ICommand binding
│   └── MenuItemAdv  (×N)            (nested submenu items)
└── MenuItemSeparator                 (horizontal divider line)

程序集: Syncfusion.Shared.WPF
命名空间: Syncfusion.Windows.Shared
XAML 架构: http://schemas.syncfusion.com/wpf


文档与导航指南

开始使用

📄 阅读: references/getting-started.md

  • 程序集引用和 NuGet
  • XAML 命名空间声明
  • 在 XAML 中声明嵌套的 MenuItemAdv
  • 在 C# 代码隐藏中创建
  • 为菜单项设置图标
  • 使用 SfSkinManager 设置主题
数据绑定

📄 阅读: references/data-binding.md

  • 通过 ItemsSource 绑定 ObservableCollection
  • 使用 SubItems 层次结构的模型和 ViewModel
  • 设置 HierarchicalDataTemplate
  • 通过 XmlDataProvider + XPath 从 XML 绑定数据
菜单项功能

📄 阅读: references/menu-item-features.md

  • MenuItemAdv 上的图标
  • InputGestureText(键盘快捷键标签)
  • MenuItemSeparator(视觉分隔符)
  • 复选框菜单项(IsCheckable、CheckIconType)
  • 单选按钮菜单项(使用 GroupName 实现互斥)
命令

📄 阅读: references/commands.md

  • Command 属性——绑定到 ICommand
  • CommandParameter——传递给处理程序的值
  • CommandTarget——路由到特定元素
  • 内置 ApplicationCommands(Copy、Cut、Paste)
  • 用于 MVVM 的 DelegateCommand 实现模式
方向与展开模式

📄 阅读: references/orientation-and-expand-mode.md

  • Orientation——Horizontal(默认)与 Vertical
  • ExpandMode——ExpandOnClick 与 ExpandOnMouseOver
  • 边界检测和滚动支持概述
  • 选择指南
外观

📄 阅读: references/appearance.md

  • 动画支持
  • 键盘导航
  • Blend 兼容性(Expression Blend 自定义)
  • 通过 SfSkinManager 和 ThemeStudio 设置主题

快速入门

xmlns:syncfusion="http://schemas.syncfusion.com/wpf"

<syncfusion:MenuAdv Height="25" VerticalAlignment="Top">
    <syncfusion:MenuItemAdv Header="File">
        <syncfusion:MenuItemAdv Header="New"/>
        <syncfusion:MenuItemAdv Header="Open"/>
        <syncfusion:MenuItemSeparator/>
        <syncfusion:MenuItemAdv Header="Exit"/>
    </syncfusion:MenuItemAdv>
    <syncfusion:MenuItemAdv Header="Edit">
        <syncfusion:MenuItemAdv Header="Cut"/>
        <syncfusion:MenuItemAdv Header="Copy"/>
        <syncfusion:MenuItemAdv Header="Paste"/>
    </syncfusion:MenuItemAdv>
    <syncfusion:MenuItemAdv Header="View"/>
</syncfusion:MenuAdv>
using Syncfusion.Windows.Shared;

MenuAdv menu = new MenuAdv();

MenuItemAdv file = new MenuItemAdv { Header = "File" };
file.Items.Add(new MenuItemAdv { Header = "New" });
file.Items.Add(new MenuItemAdv { Header = "Open" });
file.Items.Add(new MenuItemSeparator());
file.Items.Add(new MenuItemAdv { Header = "Exit" });

MenuItemAdv edit = new MenuItemAdv { Header = "Edit" };
edit.Items.Add(new MenuItemAdv { Header = "Cut" });
edit.Items.Add(new MenuItemAdv { Header = "Copy" });

menu.Items.Add(file);
menu.Items.Add(edit);
this.Content = menu;

常见模式

场景方案
静态应用菜单(文件/编辑/视图)在 XAML 中声明嵌套的 MenuItemAdv
动态数据驱动菜单ItemsSource + HierarchicalDataTemplate
菜单项旁显示图标使用 MenuItemAdv.Icon 和 <Image Source="..."/>
键盘快捷键标签InputGestureText="Ctrl+N"
分组之间的分隔符<syncfusion:MenuItemSeparator/>
切换选项(可勾选)IsCheckable="True" + CheckIconType="CheckBox"
互斥选项CheckIconType="RadioButton" + GroupName="group1"
MVVM 命令绑定Command="{Binding SaveCommand}"
垂直侧边栏菜单Orientation="Vertical"
悬停时打开子菜单ExpandMode="ExpandOnMouseOver"

主要属性

MenuAdv:

属性描述
OrientationHorizontal(默认)或 Vertical 项布局
ExpandModeExpandOnClick 或 ExpandOnMouseOver
ItemsSource用于数据绑定填充的数据集合
ItemTemplate用于数据绑定项的 HierarchicalDataTemplate

MenuItemAdv:

属性描述
Header显示文本
Icon显示在左侧的图像/UIElement
InputGestureText快捷键标签(例如,"Ctrl+S")
IsCheckable启用复选框/单选按钮行为
CheckIconTypeCheckBox 或 RadioButton
IsChecked选中状态(bool)
GroupName单选按钮组标识符
CommandICommand 绑定
CommandParameter传递给命令的值
CommandTarget路由命令的目标元素

评论

支持 Markdown