mcpField
S
syncfusion-wpf-ribbon

syncfusion-wpf-ribbon

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

关于 syncfusion-wpf-ribbon

面向 WPF 桌面应用的 Syncfusion Ribbon 实现技能,介绍如何用选项卡、组和控件组织命令,并涵盖外观、状态持久化及多文档场景。

主要功能

  1. 01按选项卡和组组织命令
  2. 02添加按钮、菜单与输入控件
  3. 03配置应用菜单和 backstage 视图
  4. 04保存与加载 Ribbon 状态
  5. 05支持多文档 Ribbon 合并
  6. 06设置键盘与触控无障碍功能

适用场景

  1. 01为文本编辑器组织格式命令
  2. 02为数据分析工具分类功能
  3. 03在多文档编辑器中共享命令
  4. 04构建 Office 风格应用界面

安装

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

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

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

包含的文件

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

references/
getting-started.md
ribbon-accessibility.md
ribbon-advanced-continued.md
ribbon-advanced.md
ribbon-buttons.md
ribbon-customization.md
ribbon-gallery.md
ribbon-inputs.md
ribbon-patterns-continued.md
ribbon-patterns.md
ribbon-structure.md
troubleshooting.md

详细介绍

实现 Syncfusion WPF Ribbon

何时使用此技能

在以下情况下使用此技能:

  • 在 WPF 桌面应用程序中创建 Ribbon 界面
  • 添加 Ribbon 选项卡、组和控件(按钮、菜单、图库、输入控件)
  • 配置应用程序菜单或 Backstage 视图
  • 自定义 Ribbon 外观、样式或布局
  • 实现状态持久化或多文档场景
  • 添加无障碍功能或触控支持
  • 处理 Ribbon 项目交互和数据绑定

组件概览

Syncfusion WPF Ribbon 是一款全面的导航组件,可为桌面应用程序提供现代的 Microsoft Office 风格 Ribbon 界面。它将命令组织到选项卡和组中,减少 UI 杂乱,同时让用户更容易发现各项功能。

主要功能:

  • 基于选项卡的命令组织方式,支持组和列
  • 内置 Ribbon 控件:按钮、菜单、图库、文本输入框、复选框、单选按钮
  • 支持应用程序菜单和 Backstage 视图
  • 跨应用程序会话持久化状态
  • 支持复杂场景下的多文档 Ribbon 合并
  • 全面的键盘和触控无障碍支持
  • 可自定义的样式和响应式布局

文档与导航指南

入门

📄 阅读: references/getting-started.md

  • 安装和 NuGet 包设置
  • 在 XAML 中创建基本 Ribbon
  • 命名空间声明和项目设置
  • 添加第一个选项卡和组
  • 绑定基本点击事件
Ribbon 结构与布局

📄 阅读: references/ribbon-structure.md

  • 创建选项卡并管理选项卡集合
  • 将控件组织到组和列中
  • 配置应用程序菜单
  • 设置 Backstage 视图
  • 使用 RibbonItemHost 承载自定义内容
Ribbon 按钮与菜单

📄 阅读: references/ribbon-buttons.md

  • 实现标准 RibbonButton
  • 使用 SplitButton 拆分命令
  • 使用 MenuButton 快速访问菜单
  • MenuItem 层级结构和嵌套菜单
  • 命令绑定和点击处理程序
Ribbon 输入控件

📄 阅读: references/ribbon-inputs.md

  • RibbonCheckBox 和 RibbonRadioButton
  • 用于文本输入的 RibbonTextBox
  • RibbonComboBox 和 RibbonListBox
  • 用于视觉分组的 RibbonSeparator
  • 将数据绑定到 Ribbon 输入控件
Ribbon 图库控件

📄 阅读: references/ribbon-gallery.md

  • 设置图库和项目模板
  • 项目的视觉呈现
  • 选择和项目选择事件
  • 筛选和搜索图库
  • 用于分类项目的图库组
自定义与样式

📄 阅读: references/ribbon-customization.md

  • 配置 Ribbon 下方的 StatusBar
  • 样式和模板自定义
  • 主题和配色方案
  • 大小组和布局压缩
  • 响应式 Ribbon 行为
高级功能

📄 阅读: references/ribbon-advanced.md

  • 用于多文档界面的 Ribbon 合并
  • 状态持久化(保存/加载 Ribbon 状态)
  • 动态创建选项卡和组
  • Ribbon 收缩布局(自动折叠)
  • 以编程方式操作 Ribbon
无障碍与触控

📄 阅读: references/ribbon-accessibility.md

  • 键盘导航和快捷键
  • 用于便于发现功能的工具提示
  • 触控输入处理
  • 屏幕阅读器兼容性
  • 无障碍最佳实践
模式与最佳实践

📄 阅读: references/ribbon-patterns.md

  • 常见 Ribbon UI 模式
  • 何时使用应用程序菜单而不是选项卡
  • Ribbon 组织原则
  • 性能注意事项
  • 设计最佳实践
故障排除

📄 阅读: references/troubleshooting.md

  • 按钮和菜单问题
  • 输入控件问题
  • 常见设置问题

快速入门示例

以下是一个用于快速入门的最简 WPF Ribbon 设置:


<syncfusion:RibbonWindow x:Class="RibbonApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:syncfusion="http://schemas.syncfusion.com/wpf"
        Title="Ribbon Application" Height="600" Width="800">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        
        
        <syncfusion:Ribbon Grid.Row="0">
            
            <syncfusion:RibbonTab Caption="Home">
                
                <syncfusion:RibbonBar Header="File Operations">
                    <syncfusion:RibbonButton Label="New" 
                                             SmallIcon="Images/new.png"
                                             Click="OnNewClick" />
                    <syncfusion:RibbonButton Label="Open" 
                                             SmallIcon="Images/open.png"
                                             Click="OnOpenClick" />
                    <syncfusion:RibbonButton Label="Save" 
                                             SmallIcon="Images/save.png"
                                             Click="OnSaveClick" />
                </syncfusion:RibbonBar>
                
                
                <syncfusion:RibbonBar Header="Formatting">
                    <syncfusion:RibbonComboBox Label="Font">
                        <syncfusion:RibbonComboBoxItem Content="Arial" />
                        <syncfusion:RibbonComboBoxItem Content="Times New Roman" />
                        <syncfusion:RibbonComboBoxItem Content="Courier New" />
                    </syncfusion:RibbonComboBox>
                </syncfusion:RibbonBar>
            </syncfusion:RibbonTab>
            
            
            <syncfusion:RibbonTab Caption="Edit">
                <syncfusion:RibbonBar Header="Clipboard">
                    <syncfusion:RibbonButton Label="Cut" Click="OnCutClick" />
                    <syncfusion:RibbonButton Label="Copy" Click="OnCopyClick" />
                    <syncfusion:RibbonButton Label="Paste" Click="OnPasteClick" />
                </syncfusion:RibbonBar>
            </syncfusion:RibbonTab>
        </syncfusion:Ribbon>
        
        
        <TextBox Grid.Row="1" AcceptsReturn="True" />
        <StatusBar Grid.Row="2" Height="30" />
    </Grid>
</syncfusion:RibbonWindow>
// MainWindow.xaml.cs
using Syncfusion.Windows.Tools.Controls;

public partial class MainWindow : RibbonWindow
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void OnNewClick(object sender, EventArgs e)
    {
        // Handle new document
    }

    private void OnOpenClick(object sender, EventArgs e)
    {
        // Handle open file
    }

    private void OnSaveClick(object sender, EventArgs e)
    {
        // Handle save file
    }
}

常见模式

模式 1:带应用程序菜单的功能区

创建一个可通过左上角菜单按钮访问的“文件”菜单:

<syncfusion:Ribbon>
    <syncfusion:Ribbon.ApplicationMenu>
        <syncfusion:ApplicationMenu>
            <syncfusion:MenuItem Header="New" />
            <syncfusion:MenuItem Header="Open" />
            <syncfusion:MenuItem Header="Save" />
            <syncfusion:MenuItemSeparator />
            <syncfusion:MenuItem Header="Exit" />
        </syncfusion:ApplicationMenu>
    </syncfusion:Ribbon.ApplicationMenu>
    
    <syncfusion:RibbonTab Caption="Home">
        
    </syncfusion:RibbonTab>
</syncfusion:Ribbon>
模式 2:带多个栏的选项卡

在选项卡中将命令组织为逻辑分组:

<syncfusion:RibbonTab Caption="Tools">
    <syncfusion:RibbonBar Header="Analysis">
        <syncfusion:RibbonButton Label="Chart" />
        <syncfusion:RibbonButton Label="Graph" />
    </syncfusion:RibbonBar>
    
    <syncfusion:RibbonBar Header="Data">
        <syncfusion:RibbonButton Label="Sort" />
        <syncfusion:RibbonButton Label="Filter" />
    </syncfusion:RibbonBar>
</syncfusion:RibbonTab>
模式 3:带下拉菜单的拆分按钮

创建一个带下拉菜单的按钮,用于显示相关命令:

<syncfusion:SplitButton Label="Format">
    <syncfusion:RibbonMenuItem Header="Bold" />
    <syncfusion:RibbonMenuItem Header="Italic" />
    <syncfusion:RibbonMenuItem Header="Underline" />
</syncfusion:SplitButton>
模式 4:使用 MVVM 绑定命令

将功能区按钮绑定到视图模型命令:

<syncfusion:RibbonButton Label="Save" 
                         Command="{Binding SaveCommand}"
                         CommandParameter="All" />

关键属性参考

Ribbon
  • ApplicationMenu - 左上角菜单内容
  • BackStage - 用于文件操作的后台视图面板
  • QuickAccessToolBar - 快速访问工具栏配置
  • AutoPersist - 启用自动状态持久化
  • SaveRibbonState() / LoadRibbonState() - 保存和加载功能区状态
RibbonTab
  • Caption - 选项卡标签(使用 Caption 而非 Header)
  • IsVisible - 动态显示/隐藏选项卡
RibbonBar
  • Header - 栏标签(替代 RibbonGroup)
  • DialogLauncherCommand - 用于高级选项的对话框启动器
RibbonButton / SplitButton
  • Label - 按钮文本
  • SmallIcon / MediumIcon / LargeIcon - 按钮图像(使用这些属性代替 Icon)
  • Click / Command - 事件或命令绑定
  • SizeForm - 尺寸变化(Large、Medium、Small、ExtraSmall)
  • IsCheckable - 切换按钮行为
RibbonComboBox / RibbonListBox
  • Label - 控件标签
  • SelectedItem - 当前选定值
  • ItemsSource - 数据绑定源
  • SelectionChanged - 选择事件
RibbonTextBox
  • Text - 文本值(不是 Label)
  • Width - 控件宽度
RibbonCheckBox / RibbonRadioButton
  • Content - 控件标签(不是 Label)
  • IsChecked - 选中状态
  • GroupName - 单选按钮分组
RibbonGallery
  • ItemsSource - 图库项目
  • ItemTemplate - 项目的可视化模板
  • ItemSelectionChangedCommand - 选择命令

常见用例

用例 1:文本编辑器应用 创建一个包含标准格式设置命令(字体、字号、粗体、斜体、下划线、对齐方式)的功能区。请参阅 getting-started.md 了解设置方法。

用例 2:数据分析工具 将分析、制图和导出功能组织到不同的选项卡中,并使用图库展示图表类型。请参阅 ribbon-gallery.md。

用例 3:多文档编辑器 使用功能区合并来共享通用命令,同时允许设置特定于文档的命令。请参阅 ribbon-advanced.md。

用例 4:Office 风格应用 为文件操作实现应用程序菜单,为设置实现后台视图,并添加上下文选项卡。请参阅 ribbon-structure.md。


后续步骤:

评论

支持 Markdown