mcpField
S
syncfusion-winforms-tabbed-mdi-manager

syncfusion-winforms-tabbed-mdi-manager

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

关于 syncfusion-winforms-tabbed-mdi-manager

该技能为 Windows Forms 开发者介绍 Syncfusion TabbedMDIManager,用标签页组织 MDI 子窗口。内容包括多标签组、外观主题、事件交互,以及布局保存和恢复。

主要功能

  1. 01以标签页组织 MDI 窗口
  2. 02创建可调整大小的标签组
  3. 03配置标签位置、主题与样式
  4. 04处理标签事件和菜单
  5. 05保存并恢复窗口布局

适用场景

  1. 01构建多文档编辑器界面
  2. 02为数据分析工具分类组织窗口
  3. 03创建带可恢复布局的 MDI 应用
  4. 04实现 Visual Studio 风格的标签式界面

安装

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

$npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-tabbed-mdi-manager

安装后在 Claude Code 中输入/syncfusion-winforms-tabbed-mdi-manager确认已加载。

包含的文件

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

references/
appearance-and-styling.md
button-settings.md
events-and-interaction.md
getting-started.md
serialization-and-state.md
tab-alignment.md
tab-groups.md
tab-styles-and-themes.md

详细介绍

实现 Syncfusion Windows Forms TabbedMDIManager

TabbedMDIManager 是一个功能强大的 Windows Forms 控件,可为多文档界面(MDI)应用程序提供现代化的选项卡式界面。它用专业的选项卡式布局取代默认的层叠/平铺模式,类似于 Visual Studio .NET IDE。

何时使用此技能

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

  • 为桌面应用程序创建选项卡式 MDI 界面
  • 将多个子窗口组织为选项卡
  • 支持多个带可调整大小分隔条的选项卡组
  • 自定义选项卡外观、颜色、字体和样式
  • 应用专业主题(Office 2007/2016、Metro 等)
  • 处理选项卡事件和用户交互
  • 使用序列化保存和还原应用程序布局
  • 配置按钮控件(关闭、下拉)
  • 启用工具提示和上下文菜单
  • 将选项卡对齐到不同位置(顶部、底部、左侧、右侧)

组件概述

主要功能:

  • ✅ 支持分隔条的多个选项卡组
  • ✅ 15 种以上内置主题和选项卡样式
  • ✅ 单独和动态的选项卡控制
  • ✅ 全面自定义颜色、字体和外观
  • ✅ 支持序列化(XML、Binary、Isolated Storage)
  • ✅ 事件驱动架构
  • ✅ 支持工具提示和上下文菜单
  • ✅ 按钮控件(关闭按钮、下拉按钮)
  • ✅ 支持 RTL
  • ✅ 选项卡对齐方式(顶部、底部、左侧、右侧)

文档导航指南

入门

📄 阅读: references/getting-started.md

  • 安装和 NuGet 包设置
  • 所需的程序集引用
  • 通过设计器和代码添加控件
  • 创建第一个 MDI 子窗体
  • 附加到 MDI 容器
  • 基本用法模式
选项卡对齐与定位

📄 阅读: references/tab-alignment.md

  • 将选项卡对齐到顶部、底部、左侧或右侧
  • TabControlAdded 事件的用法
  • 在不同方向上定位选项卡
  • 动态更改对齐方式
选项卡组与组织

📄 阅读: references/tab-groups.md

  • 创建多个选项卡组
  • 使用分隔条调整组的大小
  • 水平和垂直排列
  • 控制组的数量和布局
  • 将窗体关联到特定选项卡组
  • 创建自定义选项卡式布局
按钮配置

📄 阅读: references/button-settings.md

  • 下拉按钮的可见性和样式
  • 关闭按钮配置
  • 单个选项卡的关闭按钮
  • 单击鼠标中键关闭
  • 自定义按钮颜色
  • ShowCloseButtonForForm 方法的用法
外观与样式

📄 阅读: references/appearance-and-styling.md

  • 配置选项卡文本和图标
  • 15 种以上选项卡样式(2D、3D、Office、Metro 等)
  • 活动/非活动选项卡颜色
  • 选项卡自定义字体
  • 图标大小和位置
  • 自定义选项卡面板
  • 边框和背景颜色
选项卡样式与主题

📄 阅读: references/tab-styles-and-themes.md

  • 所有可用选项卡样式概览
  • Office 2007/2016 配色方案
  • OneNote 和 Metro 样式
  • IE7 和 WhidbeyStyle 选项
  • 窗口布局样式(层叠、平铺等)
  • 动态切换样式
  • Office2007ColorScheme 属性
事件与交互

📄 阅读: references/events-and-interaction.md

  • BeforeMDIChildAdded 事件
  • TabControlAdded 和 TabControlAdding 事件
  • TabControlRemoved 事件
  • BeforeDropDownPopup 事件
  • UnLockingMdIClient 事件
  • 事件驱动的自定义
  • 自定义上下文菜单
  • 工具提示支持
序列化与状态管理

📄 阅读: references/serialization-and-state.md

  • 使用 AppStateSerializer 保存选项卡组布局
  • 在应用程序启动时加载保存的布局
  • 序列化格式(XML、Binary、Isolated Storage)
  • 内存流序列化
  • ClearSavedTabGroupState 的用法
  • AppStateSerializer 的单例模式
  • 恢复应用程序状态

快速入门示例

// Step 1: Add namespace
using Syncfusion.Windows.Forms.Tools;

// Step 2: Create TabbedMDIManager
TabbedMDIManager tabbedMDIManager = new TabbedMDIManager();

// Step 3: Configure MDI container
this.IsMdiContainer = true;
tabbedMDIManager.AttachToMdiContainer(this);

// Step 4: Apply theme
tabbedMDIManager.ThemesEnabled = true;
tabbedMDIManager.TabStyle = typeof(Syncfusion.Windows.Forms.Tools.TabRendererOffice2016White);

// Step 5: Enable buttons
tabbedMDIManager.CloseButtonVisible = true;
tabbedMDIManager.DropDownButtonVisible = true;

// Step 6: Create child window
Form childForm = new Form() { Text = "Document 1", MdiParent = this };
childForm.Show();

常见模式

模式 1:多个选项卡组
// Create multiple tab groups by using TabbedGroupedMDIManager
TabbedGroupedMDIManager tabbedMDIManager = new TabbedGroupedMDIManager();
tabbedMDIManager.AttachToMdiContainer(this);

// Forms added will be grouped as tabs
Form doc1 = new Form() { Text = "Document 1", MdiParent = this };
Form doc2 = new Form() { Text = "Document 2", MdiParent = this };
doc1.Show();
doc2.Show();
模式 2:自定义选项卡样式
// Handle TabControlAdded to customize each tab group
tabbedMDIManager.TabControlAdded += (sender, args) =>
{
    args.TabControl.Alignment = TabAlignment.Bottom;
    args.TabControl.Font = new Font("Arial", 10, FontStyle.Bold);
};
模式 3:保存并恢复布局
// On application close: Save layout
AppStateSerializer serializer = new AppStateSerializer(SerializeMode.XMLFile, "AppState");
tabbedMDIManager.SaveTabGroupStates(serializer);
serializer.PersistNow();

// On application startup: Load layout
AppStateSerializer serializer = new AppStateSerializer(SerializeMode.XMLFile, "AppState");
tabbedMDIManager.LoadTabGroupStates(serializer);
模式 4:自定义上下文菜单
// Add custom items to tab context menu
using Syncfusion.Windows.Forms.Tools.XPMenus;

ParentBarItem contextMenu = new ParentBarItem();
BarItem customItem = new BarItem() { Text = "Custom Action", MergeOrder = 30 };
contextMenu.Items.Add(customItem);
tabbedMDIManager.ContextMenuItem = contextMenu;

关键属性摘要

属性用途示例
ThemesEnabled启用/禁用主题支持tabbedMDIManager.ThemesEnabled = true;
TabStyle设置选项卡视觉样式typeof(TabRenderer2D) 到 TabRendererOffice2016Black
CloseButtonVisible显示/隐藏关闭按钮true 表示显示关闭按钮
DropDownButtonVisible显示/隐藏下拉按钮true 表示显示下拉菜单
ShowCloseButton为每个选项卡显示独立的关闭按钮true 表示为每个选项卡显示关闭按钮
ShowCloseButtonForActiveTabOnly仅在活动选项卡上显示关闭按钮true 表示仅限活动选项卡
UseIconsInTabs在选项卡标题中显示图标true 表示显示图标
ImageSize选项卡图标的大小new Size(16, 16)
ActiveTabBackColor活动选项卡的背景色Color.Blue
TabBackColor非活动选项卡的背景色Color.Gray
ActiveTabFont活动选项卡的字体样式new Font("Arial", 10, FontStyle.Bold)
TabFont非活动选项卡的字体样式new Font("Arial", 10)
Alignment选项卡位置(通过 TabControl 设置)TabAlignment.Bottom、Left、Right
CloseOnMiddleButtonClick单击鼠标中键关闭选项卡true 表示启用

常见用例

用例 1:Visual Studio 风格的 MDI

创建一款专业的 MDI 应用程序,采用选项卡式布局,支持多个选项卡组,并具有类似 VS 的外观。

用例 2:文档编辑器

构建一款多文档编辑器,为每个打开的文档提供选项卡,并支持主题和序列化,以便恢复上次会话。

用例 3:数据分析工具

创建一款包含多个分析选项卡的应用程序,可按功能分组并自定义样式。

用例 4:项目管理

构建一个包含不同任务选项卡的 UI,支持自定义外观,并在不同会话间保留布局。

后续步骤

  1. 从入门指南开始,设置你的第一个 TabbedMDI 应用程序
  2. 如果需要多个可调整大小的文档区域,请探索选项卡组
  3. 自定义外观,打造专业的主题和样式
  4. 添加交互功能,使用事件和上下文菜单
  5. 实现序列化,保存用户首选项和布局

其他资源

评论

支持 Markdown