syncfusion-winforms-main-frame-bar-manager

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Implementing Syncfusion WinForms MainFrameBarManager

实现Syncfusion WinForms MainFrameBarManager

When to Use This Skill

何时使用该技能

The MainFrameBarManager component is essential when you need to:
  • Create hierarchical menu structures (File, Edit, View menus with submenus)
  • Build customizable toolbars and command bars
  • Add keyboard shortcuts and mnemonics to menu items
  • Implement context menus and interactive tooltips
  • Support MDI (Multiple Document Interface) applications with merged menus
  • Persist menu and toolbar state between application sessions
  • Enable end-users to customize menu layout at runtime
This component follows the XP Menus Framework pattern, providing a professional, enterprise-grade menu management system for Windows Forms applications.
当你需要完成以下需求时,MainFrameBarManager组件是必不可少的:
  • 创建分层菜单结构(包含子菜单的文件、编辑、视图菜单)
  • 构建可自定义的工具栏和命令栏
  • 为菜单项添加键盘快捷键和助记键
  • 实现上下文菜单和交互式工具提示
  • 支持带有合并菜单的MDI(多文档界面)应用程序
  • 在应用程序会话之间持久化保存菜单和工具栏状态
  • 允许最终用户在运行时自定义菜单布局
该组件遵循XP Menus Framework模式,为Windows Forms应用程序提供专业的企业级菜单管理系统。

Quick Start Example

快速入门示例

csharp
// Create MainFrameBarManager
MainFrameBarManager mainFrameBarManager1 = new MainFrameBarManager();
mainFrameBarManager1.Style = Syncfusion.Windows.Forms.VisualStyle.Office2016Colorful;
mainFrameBarManager1.Form = this;

// Create a bar (menu container)
Bar fileBar = new Syncfusion.Windows.Forms.Tools.XPMenus.Bar();
fileBar.BarName = "File";
fileBar.Caption = "File";
fileBar.Manager = mainFrameBarManager1;

// Create parent menu item
ParentBarItem fileMenu = new ParentBarItem();
fileMenu.Text = "&File";

// Create sub-menu items
BarItem newItem = new BarItem() { Text = "&New" };
BarItem openItem = new BarItem() { Text = "&Open" };
BarItem exitItem = new BarItem() { Text = "E&xit" };

// Assign shortcuts and mnemonics
newItem.Shortcut = Shortcut.CtrlN;
openItem.Shortcut = Shortcut.CtrlO;
exitItem.Shortcut = Shortcut.AltF4;

// Build hierarchy
fileMenu.Items.AddRange(new BarItem[] { newItem, openItem, exitItem });
fileBar.Items.Add(fileMenu);

// Add to manager
mainFrameBarManager1.Items.AddRange(new BarItem[] { fileMenu, newItem, openItem, exitItem });
mainFrameBarManager1.Bars.Add(fileBar);
mainFrameBarManager1.Categories.Add("Menu");
csharp
// Create MainFrameBarManager
MainFrameBarManager mainFrameBarManager1 = new MainFrameBarManager();
mainFrameBarManager1.Style = Syncfusion.Windows.Forms.VisualStyle.Office2016Colorful;
mainFrameBarManager1.Form = this;

// Create a bar (menu container)
Bar fileBar = new Syncfusion.Windows.Forms.Tools.XPMenus.Bar();
fileBar.BarName = "File";
fileBar.Caption = "File";
fileBar.Manager = mainFrameBarManager1;

// Create parent menu item
ParentBarItem fileMenu = new ParentBarItem();
fileMenu.Text = "&File";

// Create sub-menu items
BarItem newItem = new BarItem() { Text = "&New" };
BarItem openItem = new BarItem() { Text = "&Open" };
BarItem exitItem = new BarItem() { Text = "E&xit" };

// Assign shortcuts and mnemonics
newItem.Shortcut = Shortcut.CtrlN;
openItem.Shortcut = Shortcut.CtrlO;
exitItem.Shortcut = Shortcut.AltF4;

// Build hierarchy
fileMenu.Items.AddRange(new BarItem[] { newItem, openItem, exitItem });
fileBar.Items.Add(fileMenu);

// Add to manager
mainFrameBarManager1.Items.AddRange(new BarItem[] { fileMenu, newItem, openItem, exitItem });
mainFrameBarManager1.Bars.Add(fileBar);
mainFrameBarManager1.Categories.Add("Menu");

Common Patterns

常见模式

Pattern 1: Creating Multi-Level Menus

模式1:创建多级菜单

Create nested ParentBarItems for submenus (File → Recent → Document1). Group related items under parent containers.
为子菜单创建嵌套的ParentBarItem(例如文件 → 最近打开 → 文档1),将相关项分组到父容器下。

Pattern 2: Adding Interactive Controls

模式2:添加交互控件

Use DropDownBarItem with PopupControlContainer for color pickers, ComboBoxBarItem for selections, TextBoxBarItem for input fields.
将DropDownBarItem与PopupControlContainer搭配使用实现颜色选择器,使用ComboBoxBarItem实现选择功能,使用TextBoxBarItem实现输入字段。

Pattern 3: Implementing Customization

模式3:实现自定义功能

Enable AutoPersistCustomization to allow users to rearrange menu items and save their preferences automatically.
启用AutoPersistCustomization以允许用户重新排列菜单项并自动保存他们的偏好设置。

Pattern 4: MDI Application Integration

模式4:MDI应用程序集成

Use MainFrameBarManager for parent forms and ChildFrameBarManager for child forms. Call RegisterMdiChildTypes() for automatic menu merging.
父窗体使用MainFrameBarManager,子窗体使用ChildFrameBarManager。调用RegisterMdiChildTypes()实现自动菜单合并。

Pattern 5: Keyboard Navigation

模式5:键盘导航

Assign Shortcut properties and use & symbol in Text for mnemonics (e.g., "&Save" creates Alt+S).
设置Shortcut属性,并在文本中使用&符号实现助记键(例如"&Save"会生成Alt+S快捷键)。

Key Properties

关键属性

PropertyTypePurpose
FormFormAssociates the menu manager with the parent form
StyleVisualStyleSets the visual style (Office2016, XPBlue, etc.)
BarsBarCollectionCollection of Bar instances (menus, toolbars)
ItemsBarItemCollectionAll BarItem instances managed by this manager
CategoriesStringCollectionCategories for organizing menu items in customization UI
AutoLoadToolBarPositionsboolAuto-loads saved toolbar positions on startup
AutoPersistCustomizationboolAuto-saves menu and toolbar customizations
DetachedCommandBarsCommandBarCollectionCollection of detachable CommandBar instances
属性类型用途
FormForm将菜单管理器与父窗体关联
StyleVisualStyle设置视觉样式(Office2016、XPBlue等)
BarsBarCollectionBar实例(菜单、工具栏)的集合
ItemsBarItemCollection该管理器管理的所有BarItem实例
CategoriesStringCollection用于在自定义UI中组织菜单项的分类
AutoLoadToolBarPositionsbool启动时自动加载已保存的工具栏位置
AutoPersistCustomizationbool自动保存菜单和工具栏的自定义配置
DetachedCommandBarsCommandBarCollection可分离的CommandBar实例集合

Documentation & Navigation Guide

文档与导航指南

Getting Started

入门指南

📄 Read: references/getting-started.md
  • NuGet package setup and assembly references
  • Creating MainFrameBarManager instance
  • Setting visual styles and form association
  • License key configuration
📄 阅读: references/getting-started.md
  • NuGet包设置和程序集引用
  • 创建MainFrameBarManager实例
  • 设置视觉样式和窗体关联
  • 许可证密钥配置

Building Menus

构建菜单

📄 Read: references/menu-items-via-code.md
  • Creating Bar instances programmatically
  • Adding BarItem and ParentBarItem
  • Child item hierarchies and sub-menus
  • Event handler setup with code examples
📄 Read: references/menu-items-via-designer.md
  • Designer-based menu creation (drag-and-drop)
  • Customize dialog for bars and items
  • Visual arrangement through UI
  • Automatic assembly reference injection
📄 阅读: references/menu-items-via-code.md
  • 以编程方式创建Bar实例
  • 添加BarItem和ParentBarItem
  • 子项层级结构和子菜单
  • 带有代码示例的事件处理程序设置
📄 阅读: references/menu-items-via-designer.md
  • 基于设计器的菜单创建(拖拽方式)
  • 工具栏和项的自定义对话框
  • 通过UI进行可视化排列
  • 自动注入程序集引用

Menu Item Types & Features

菜单项类型与功能

📄 Read: references/menu-item-types.md
  • BarItem (basic clickable items)
  • ParentBarItem (submenu containers)
  • DropDownBarItem (custom popup controls)
  • ComboBoxBarItem (dropdown selections)
  • StaticBarItem (label-like display items)
  • TextBoxBarItem (text input fields)
  • ToolBarListBarItem (toolbar customization options)
📄 阅读: references/menu-item-types.md
  • BarItem(基础可点击项)
  • ParentBarItem(子菜单容器)
  • DropDownBarItem(自定义弹出控件)
  • ComboBoxBarItem(下拉选择项)
  • StaticBarItem(类标签展示项)
  • TextBoxBarItem(文本输入字段)
  • ToolBarListBarItem(工具栏自定义选项)

Interactive Features

交互功能

📄 Read: references/interactive-features.md
  • SuperTooltip setup and appearance customization
  • Context menu integration
  • Tooltip visibility control
  • Advanced tooltip editor configuration
📄 阅读: references/interactive-features.md
  • SuperTooltip设置和外观自定义
  • 上下文菜单集成
  • 工具提示可见性控制
  • 高级工具提示编辑器配置

Keyboard & Accessibility

键盘与无障碍支持

📄 Read: references/keyboard-support.md
  • Assigning keyboard shortcuts to menu items
  • Mnemonic text implementation with & symbol
  • ShowMnemonicUnderlinesAlways property
  • Keyboard navigation patterns
📄 阅读: references/keyboard-support.md
  • 为菜单项分配键盘快捷键
  • 使用&符号实现助记键文本
  • ShowMnemonicUnderlinesAlways属性
  • 键盘导航模式

State Persistence & MDI

状态持久化与MDI

📄 Read: references/state-persistence-mdi.md
  • Enabling state persistence with AutoLoadToolBarPositions
  • Automatic customization serialization
  • MDI parent/child form integration
  • ChildFrameBarManager and menu merging
  • RegisterMdiChildTypes() for explicit merging
  • MDI merge behavior matrix
📄 阅读: references/state-persistence-mdi.md
  • 通过AutoLoadToolBarPositions启用状态持久化
  • 自定义配置自动序列化
  • MDI父/子窗体集成
  • ChildFrameBarManager和菜单合并
  • 使用RegisterMdiChildTypes()实现显式合并
  • MDI合并行为矩阵

Detachable Toolbars

可分离工具栏

📄 Read: references/detachable-command-bars.md
  • CommandBar creation and docking
  • DockState property configuration
  • Adding to DetachedCommandBars collection
  • Designer vs. code-based approaches
📄 阅读: references/detachable-command-bars.md
  • CommandBar创建和停靠
  • DockState属性配置
  • 添加到DetachedCommandBars集合
  • 设计器 vs 基于代码的实现方式

Common Use Cases

常见用例

File Menu: Create a standard File menu with New, Open, Save, Recent Documents, and Exit items using ParentBarItem hierarchy.
Toolbar: Use multiple Bar instances with different BarNames to create separate toolbars, each docked to different positions.
Search Bar: Add TextBoxBarItem or ComboBoxBarItem to toolbar for search/filter functionality.
Color Picker in Menu: Use DropDownBarItem with PopupControlContainer containing ColorPickerUIAdv control.
Localized Menus: Set Text property to localized strings; mnemonics and shortcuts work across all languages.
Custom Shortcuts: Assign Shortcut.None to items without shortcuts, or use custom key combinations via Shortcut enum.
文件菜单: 使用ParentBarItem层级结构创建标准的文件菜单,包含新建、打开、保存、最近文档和退出项。
工具栏: 使用多个带有不同BarName的Bar实例创建独立的工具栏,每个工具栏停靠在不同位置。
搜索栏: 向工具栏添加TextBoxBarItem或ComboBoxBarItem实现搜索/筛选功能。
菜单中的颜色选择器: 将DropDownBarItem与包含ColorPickerUIAdv控件的PopupControlContainer搭配使用。
本地化菜单: 将Text属性设置为本地化字符串;助记键和快捷键支持所有语言。
自定义快捷键: 为没有快捷键的项分配Shortcut.None,或者通过Shortcut枚举使用自定义按键组合。

Quick Links

快速链接