mcpField
S
syncfusion-blazor-ribbon

syncfusion-blazor-ribbon

github.com/syncfusion设计与 UI4367 次安装1 周前更新
代码仓库

关于 syncfusion-blazor-ribbon

面向 Blazor 开发者的 Syncfusion Ribbon 组件指南,用于把命令组织成选项卡、分组和控件,并配置菜单、键盘操作与无障碍功能。

主要功能

  1. 01按选项卡和分组组织命令
  2. 02支持多种控件与文件菜单
  3. 03配置图库和上下文选项卡
  4. 04自定义 Backstage 视图
  5. 05键盘导航与 KeyTips
  6. 06主题、溢出和 RTL 设置

适用场景

  1. 01构建文档编辑器工具栏
  2. 02组织电子表格命令
  3. 03为设计工具配置操作界面
  4. 04创建 CMS 发布与内容管理操作

安装

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

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

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

包含的文件

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

references/
accessibility.md
backstage.md
contextual-tabs.md
customization.md
events.md
file-menu.md
gallery.md
getting-started.md
keytips.md
ribbon-items-advanced.md
ribbon-items-basic.md
ribbon-structure.md

详细介绍

Syncfusion Blazor Ribbon 组件

使用 Syncfusion Blazor Ribbon 组件构建专业的 Office 风格功能区界面。本指南全面介绍如何在 Blazor 应用程序中实现、配置和自定义 Ribbon。

组件概述

Ribbon 是一种 Microsoft Office 风格的 UI 组件,可将命令和工具组织到选项卡、组和集合中。它为应用程序功能提供直观的界面,并支持多种项目类型、文件菜单和丰富的自定义选项。

核心概念
  • 选项卡:顶层导航容器(主页、插入、设计等)
  • 组:选项卡中相关项目的逻辑分组(剪贴板、字体、对齐方式)
  • 集合:在组内组织项目(垂直或水平排列)
  • 项目:单个控件(按钮、下拉菜单、复选框、颜色选取器等)
  • 文件菜单:用于文件操作(新建、打开、保存)的专用下拉菜单
  • 图库:显示相关项目的可视化集合(样式、主题、设计)
  • 上下文选项卡:根据所选对象或上下文动态显示的选项卡
  • 后台视图:用于文件操作和应用程序设置的全屏菜单
  • 键盘提示:提升无障碍体验和工作效率的键盘快捷键

Ribbon 结构

SfRibbon (Main Container)
├── RibbonFileMenuSettings (Optional File Menu)
└── RibbonTabs
    └── RibbonTab (Home, Insert, Design...)
        └── RibbonGroups
            └── RibbonGroup (Clipboard, Font...)
                └── RibbonCollections
                    └── RibbonCollection (Row/Column Layout)
                        └── RibbonItems
                            └── RibbonItem (Button, Dropdown, etc.)

文档与导航指南

入门

📄 阅读: references/getting-started.md

  • 安装和 NuGet 包设置
  • 命名空间导入和服务注册
  • 主题配置
  • 初始化 Ribbon,并添加第一个选项卡和组
  • 最小可运行示例
Ribbon 结构与布局

📄 阅读: references/ribbon-structure.md

  • 选项卡组织和配置
  • 创建组并控制其方向
  • 集合层级结构以及行列布局
  • 项目定义基础
  • 组织结构最佳实践
Ribbon 项目:基本类型

📄 阅读: references/ribbon-items-basic.md

  • 带点击处理程序的按钮项目
  • 带切换状态的复选框项目
  • 带菜单选项的 DropDown 项目
  • 结合按钮和菜单的 SplitButton 项目
  • 禁用项目和项目尺寸
Ribbon 项目:高级类型

📄 阅读: references/ribbon-items-advanced.md

  • 支持数据绑定和筛选的 ComboBox 项目
  • 用于选择颜色的 ColorPicker 项目
  • 支持多选和单选模式的 GroupButton 项目
  • 用于自定义 HTML 内容的 Template 项目
  • 用于控制特定布局可见性的 DisplayOptions
文件菜单配置

📄 阅读: references/file-menu.md

  • 启用和配置文件菜单
  • 添加菜单项目和嵌套子菜单
  • 子菜单行为(悬停或单击)
  • 自定义标题文本
  • 文件菜单事件
事件与交互

📄 阅读: references/events.md

  • 组件级事件(Created、TabSelecting、TabSelected)
  • Ribbon 状态事件(Expanding、Collapsing)
  • 项目单击和选择事件
  • 启动器图标和溢出弹出窗口事件
  • 事件处理程序模式和示例
图库项目

📄 阅读: references/gallery.md

  • 使用图库视图显示相关项目的集合
  • 带自定义标题的图库组
  • 项目尺寸和样式
  • 项目数量配置
  • 所选项目索引管理
  • 自定义弹出窗口尺寸
  • 自定义图库项目模板
上下文选项卡

📄 阅读: references/contextual-tabs.md

  • 动态控制选项卡可见性
  • 上下文选项卡配置
  • 选项卡选择状态管理
  • 显示和隐藏选项卡的方法
  • 上下文感知 UI 元素
Backstage 视图

📄 阅读: references/backstage.md

  • Backstage 菜单配置
  • 菜单项和页脚项
  • Backstage 分隔符
  • 自定义返回按钮
  • 自定义 Backstage 模板
  • 宽度和高度配置
  • Backstage 事件
键盘导航和 KeyTips

📄 阅读: references/keytips.md

  • 功能区项目的 KeyTips
  • 文件菜单 KeyTips
  • Backstage 菜单 KeyTips
  • 布局切换器 KeyTips
  • 启动器图标 KeyTips
  • ShowKeyTips 和 HideKeyTips 方法
  • KeyTip 最佳实践和指南
自定义和样式

📄 阅读: references/customization.md

  • 主题选择和应用
  • 项目尺寸和布局选项
  • CSS 自定义和类应用
  • RTL(从右向左)支持
  • 溢出处理和组折叠
无障碍功能

📄 阅读: references/accessibility.md

  • 符合 WCAG 2.1 标准
  • 键盘导航(Tab、Enter、Space、方向键)
  • ARIA 属性和语义标记
  • 屏幕阅读器支持
  • 焦点管理和视觉指示器

快速入门示例

@using Syncfusion.Blazor
@using Syncfusion.Blazor.Ribbon
@using Syncfusion.Blazor.SplitButtons

<div style="width: 100%">
    <SfRibbon>
        <RibbonTabs>
            <RibbonTab HeaderText="Home">
                <RibbonGroups>
                    <RibbonGroup HeaderText="Clipboard" Orientation="Orientation.Row">
                        <RibbonCollections>
                            <RibbonCollection>
                                <RibbonItems>
                                    <RibbonItem Type="RibbonItemType.SplitButton">
                                        <RibbonSplitButtonSettings Content="Paste" IconCss="e-icons e-paste" Items="@pasteOptions">
                                        </RibbonSplitButtonSettings>
                                    </RibbonItem>
                                </RibbonItems>
                            </RibbonCollection>
                            <RibbonCollection>
                                <RibbonItems>
                                    <RibbonItem Type="RibbonItemType.Button">
                                        <RibbonButtonSettings Content="Cut" IconCss="e-icons e-cut" OnClick="@OnCut">
                                        </RibbonButtonSettings>
                                    </RibbonItem>
                                    <RibbonItem Type="RibbonItemType.Button">
                                        <RibbonButtonSettings Content="Copy" IconCss="e-icons e-copy" OnClick="@OnCopy">
                                        </RibbonButtonSettings>
                                    </RibbonItem>
                                </RibbonItems>
                            </RibbonCollection>
                        </RibbonCollections>
                    </RibbonGroup>
                </RibbonGroups>
            </RibbonTab>
        </RibbonTabs>
    </SfRibbon>
</div>

@code {
    private List<DropDownMenuItem> pasteOptions = new List<DropDownMenuItem>()
    {
        new DropDownMenuItem{ Text = "Keep Source Format" },
        new DropDownMenuItem{ Text = "Merge Format" },
        new DropDownMenuItem{ Text = "Keep Text Only" }
    };

    private void OnCut(MouseEventArgs args) { /* Handle cut action */ }
    private void OnCopy(MouseEventArgs args) { /* Handle copy action */ }
}

常见模式

1. 多选项卡功能区

将相关功能整理到不同的选项卡中,并配置不同的命令:

<SfRibbon>
    <RibbonTabs>
        <RibbonTab HeaderText="Home"></RibbonTab>
        <RibbonTab HeaderText="Insert"></RibbonTab>
        <RibbonTab HeaderText="Design"></RibbonTab>
    </RibbonTabs>
</SfRibbon>
2. 分组命令

将相关项目分组,以便更好地整理内容和布局 UI:

<RibbonTab HeaderText="Home">
    <RibbonGroups>
        <RibbonGroup HeaderText="Clipboard"></RibbonGroup>
        <RibbonGroup HeaderText="Font"></RibbonGroup>
        <RibbonGroup HeaderText="Paragraph"></RibbonGroup>
    </RibbonGroups>
</RibbonTab>
3. 文件菜单集成

添加文件操作菜单:

<SfRibbon>
    <RibbonFileMenuSettings Visible="true" MenuItems="@fileMenuItems">
    </RibbonFileMenuSettings>
    <RibbonTabs></RibbonTabs>
</SfRibbon>
4. 数据绑定组合框

将下拉列表绑定到数据源:

<RibbonItem Type="RibbonItemType.ComboBox">
    <RibbonComboBoxSettings DataSource="@fontFamilies" 
                             FieldSettings="@fieldSettings"
                             AllowFiltering="true">
    </RibbonComboBoxSettings>
</RibbonItem>
5. 切换按钮

创建具有选中/未选中状态的按钮:

<RibbonItem Type="RibbonItemType.GroupButton">
    <RibbonGroupButtonSettings Selection="GroupButtonSelection.Single" Items="@alignmentOptions">
    </RibbonGroupButtonSettings>
</RibbonItem>

关键属性和配置

组件级
  • Tabs:RibbonTab 对象的集合
  • FileMenuSettings:配置文件菜单的可见性和项目
  • Created:功能区初始化时触发的事件
选项卡级
  • HeaderText:向用户显示的选项卡名称
  • Visible:动态显示/隐藏选项卡
分组级
  • HeaderText:分组标签
  • Orientation:Row 或 Column 布局
  • PopupHeaderText:溢出弹出窗口中的文本(如果 EnableGroupOverflow=true)
项目级
  • Type:Button、Checkbox、DropDown、SplitButton、ComboBox、ColorPicker、GroupButton、Template
  • Disabled:禁用单个项目
  • DisplayOptions:Auto、Classic、Simplified、Overflow
  • AllowedSizes:Small、Medium、Large

常见用例

1. 文档编辑器

构建文字处理软件功能区,包含文件操作、格式设置和样式控件。

2. 电子表格应用

创建电子表格功能区,包含公式、数据分析和单元格格式设置。

3. 设计工具

实现设计应用功能区,包含绘图工具、颜色和对象操作。

4. 内容管理系统

设计 CMS 功能区,包含发布选项、内容整理和工作流控件。

5. 管理员仪表板

创建管理工具功能区,包含用户管理、设置和系统控件。

6. 电子邮件客户端

构建电子邮件功能区,包含消息操作(回复、转发、删除、归档)。

7. 媒体编辑器

实现图像/视频编辑器功能区,包含编辑工具、特效和导出选项。

安装先决条件

  • .NET 6.0 或更高版本
  • Blazor Server 或 WebAssembly 项目
  • Syncfusion.Blazor.Ribbon NuGet 包
  • Syncfusion.Blazor.Themes NuGet 包

主题支持

可用主题:

  • Bootstrap 5(默认)
  • Material Design
  • Fluent UI(Microsoft)
  • Tailwind CSS
  • Fabric Office
  • Material Dark

主题通过 index.html 或 App.razor 中的 CSS 导入来应用。

性能注意事项

  • 使用 DisplayOptions 隐藏特定布局中不需要的项目
  • 对复杂的项目配置实现延迟加载
  • 考虑为小屏幕尺寸进行溢出处理
  • 谨慎使用模板,避免过度渲染

浏览器支持

  • Chrome(最新版)
  • Firefox(最新版)
  • Safari(最新版)
  • Edge(最新版)
  • 移动浏览器(响应式)

键盘导航

  • Tab:在选项卡之间导航
  • Enter/Space:选择项或打开菜单
  • Arrow Keys:在组和项内导航
  • Escape:关闭已打开的菜单和弹出窗口

相关组件

  • Toolbar - 用于基本工具栏的简化替代方案
  • Menu - 独立的菜单组件
  • TabsComponent - 不带功能区样式的选项卡式内容
  • AppBar - 应用程序标题栏

故障排除提示

功能区未显示:

  • 确认已安装 NuGet 包
  • 检查 _Imports.razor 中的命名空间导入
  • 确认已在 Program.cs 中注册服务

项不可见:

  • 检查选项卡和项上的 Visible 属性
  • 确认 DisplayOptions 配置
  • 检查 Disabled 属性是否未设为 true

样式问题:

  • 确认 index.html 中引用了主题 CSS
  • 检查是否存在冲突的 CSS 规则
  • 确认 CssClass 属性的语法

事件未触发:

  • 确认事件处理程序使用 @ 绑定
  • 检查参数类型是否与事件参数匹配
  • 确认组件生命周期(初始化时使用 Created 事件)

后续步骤

  1. 从 Getting Started 开始,安装并设置组件
  2. 学习 Ribbon Structure,了解选项卡/组/项的组织方式
  3. 探索 Item Types(Basic 和 Advanced),了解不同的控件选项
  4. 添加 File Menu,用于文件操作
  5. 实现 Events,处理用户交互
  6. 使用 Styling 和 Accessibility 进行自定义,以满足生产应用的需求

如需了解更多信息,请访问 Syncfusion Blazor Ribbon 官方文档。

评论

支持 Markdown