mcpField
S
syncfusion-winforms-navigation-drawer

syncfusion-winforms-navigation-drawer

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

关于 syncfusion-winforms-navigation-drawer

此技能介绍如何在 Windows Forms 应用中实现 Syncfusion 导航抽屉,适合构建边缘滑入式菜单的开发者。内容涵盖位置、过渡动画、主题和事件配置。

主要功能

  1. 01支持四个边缘位置
  2. 02提供三种过渡效果
  3. 03配置内置 Office 2016 主题
  4. 04处理抽屉开合事件
  5. 05通过代码切换抽屉
  6. 06设置菜单项与标题图像

适用场景

  1. 01为应用添加汉堡菜单导航
  2. 02实现从窗口边缘滑入的面板
  3. 03定制抽屉动画和外观

安装

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

$npx skills add https://github.com/syncfusion/winforms-ui-components-skills --skill syncfusion-winforms-navigation-drawer

安装后在 Claude Code 中输入/syncfusion-winforms-navigation-drawer确认已加载。

包含的文件

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

references/
advanced-usage.md
customization.md
drawer-features.md
events.md
getting-started.md

详细介绍

Windows Forms 导航抽屉

Syncfusion Windows Forms Navigation Drawer 是一种滑动面板菜单,可从窗口边缘滑出,让内容显示在隐藏面板中。你可以从屏幕的任意一条边缘滑动来显示它,也可以根据需要以编程方式打开。

何时使用此技能

在需要以下功能时使用此技能:

  • 实现从屏幕边缘滑出的面板菜单(左侧、右侧、顶部或底部)
  • 创建汉堡菜单导航,并使用可折叠的侧边栏面板
  • 构建隐藏面板,使其通过流畅的动画滑入
  • 为 Windows Forms 应用程序添加基于抽屉的导航
  • 配置过渡效果(SlideOnTop、Push、Reveal)
  • 使用内置的 Office 2016 主题自定义抽屉外观
  • 处理抽屉事件(Opening、Closing、Opened、Closed)
  • 通过编程或用户交互切换抽屉的可见性
  • 将导航面板放置在不同的屏幕边缘,并配置动画

组件概述

主要功能:

  • 四种位置选项: Left、Right、Top、Bottom
  • 三种过渡类型: SlideOnTop、Push、Reveal
  • 内置主题: Default、Office2016Colorful、Office2016White、Office2016DarkGray、Office2016Black
  • 抽屉事件: Opening、Closing、Opened、Closed
  • 可配置动画时长
  • 用于编程控制的抽屉切换方法
  • 支持图像的标题和菜单项

文档和导航指南

入门

📄 阅读: references/getting-started.md

在需要以下操作时阅读此参考文档:

  • 通过 NuGet 或设计器安装 NavigationDrawer 控件
  • 将控件添加到 Windows Forms 项目
  • 以编程方式创建 NavigationDrawer 实例
  • 添加标题(DrawerHeader)和菜单项(DrawerMenuItem)
  • 设置基本抽屉尺寸(DrawerWidth、DrawerHeight)
  • 为菜单项添加图像
  • 配置文本和图像的位置(TextAlign、TextImageRelation)
  • 了解侧边栏的基本放置方式
抽屉功能和配置

📄 阅读: references/drawer-features.md

在需要以下操作时阅读此参考文档:

  • 配置 ContentView(主视图内容)
  • 了解 DrawerView 结构
  • 实现过渡类型(SlideOnTop、Push、Reveal)
  • 设置抽屉位置(Left、Right、Top、Bottom)
  • 配置抽屉尺寸和动画时长
  • 使用 ToggleDrawer 方法进行编程控制
  • 了解不同过渡效果之间的区别
自定义和样式设置

📄 阅读: references/customization.md

在需要以下操作时阅读此参考文档:

  • 应用内置主题(Default、Office2016Colorful、Office2016White、Office2016DarkGray、Office2016Black)
  • 自定义抽屉项颜色(DefaultColor、BackColor、HoverColor)
  • 使用自定义颜色设置菜单项样式
  • 在整个应用程序中应用一致的视觉主题
事件

📄 阅读: references/events.md

在需要以下操作时阅读此参考文档:

  • 处理 Opening 事件(展开过渡开始时)
  • 处理 Closing 事件(折叠过渡开始时)
  • 处理 Opened 事件(展开过渡结束时)
  • 处理 Closed 事件(折叠过渡结束时)
  • 响应抽屉状态变化
  • 取消抽屉操作
  • 在过渡期间实现自定义逻辑
高级用法

📄 阅读: references/advanced-usage.md

在需要以下操作时阅读此参考文档:

  • 使用复杂控件配置 ContentViewContainer
  • 在 ContentView 中集成 RichTextBox 或其他控件
  • 管理动态添加或移除项
  • 实现复杂的项层级结构
  • 优化大型菜单的性能
  • 遵循抽屉实现的最佳实践

快速入门

基本导航抽屉
using Syncfusion.Windows.Forms.Tools;

// Create NavigationDrawer instance
NavigationDrawer navigationDrawer1 = new NavigationDrawer();
this.Controls.Add(navigationDrawer1);

// Set drawer dimensions
navigationDrawer1.DrawerWidth = this.Width / 4;
navigationDrawer1.DrawerHeight = this.Height;

// Set position and transition
navigationDrawer1.Position = SlidePosition.Left;
navigationDrawer1.Transition = Transition.SlideOnTop;

// Add header
DrawerHeader drawerHeader1 = new DrawerHeader();
drawerHeader1.Text = "Menu";
navigationDrawer1.Items.Add(drawerHeader1);

// Add menu items
DrawerMenuItem menuItem1 = new DrawerMenuItem();
menuItem1.Text = "Home";
menuItem1.Image = Image.FromFile(@"home.png");

DrawerMenuItem menuItem2 = new DrawerMenuItem();
menuItem2.Text = "Settings";
menuItem2.Image = Image.FromFile(@"settings.png");

navigationDrawer1.Items.Add(menuItem1);
navigationDrawer1.Items.Add(menuItem2);

// Add content to ContentView
RichTextBox richTextBox = new RichTextBox();
richTextBox.Text = "Main content area";
navigationDrawer1.ContentViewContainer.Controls.Add(richTextBox);

常见模式

模式 1:使用 Push 过渡效果的左侧滑动面板
// Create drawer that pushes content when opened
NavigationDrawer drawer = new NavigationDrawer();
drawer.Position = SlidePosition.Left;
drawer.Transition = Transition.Push;
drawer.DrawerWidth = 250;
drawer.DrawerHeight = this.Height;
drawer.AnimationDuration = 150; // milliseconds

this.Controls.Add(drawer);
模式 2:通过按钮单击切换抽屉
// Toggle drawer visibility on button click
private void hamburgerButton_Click(object sender, EventArgs e)
{
    navigationDrawer1.ToggleDrawer();
}
模式 3:带自定义颜色的主题抽屉
// Apply Office 2016 theme with custom item colors
navigationDrawer1.Style = NavigationDrawerStyle.Office2016Colorful;

// Customize menu item colors
drawerMenuItem1.DefaultColor = System.Drawing.Color.LightBlue;
drawerMenuItem1.HoverColor = System.Drawing.Color.SkyBlue;
drawerMenuItem1.BackColor = System.Drawing.Color.LightBlue;
模式 4:处理抽屉事件
// Subscribe to drawer events
navigationDrawer1.Opening += NavigationDrawer1_Opening;
navigationDrawer1.Opened += NavigationDrawer1_Opened;
navigationDrawer1.Closing += NavigationDrawer1_Closing;
navigationDrawer1.Closed += NavigationDrawer1_Closed;

private void NavigationDrawer1_Opening(object sender, OpeningEventArgs e)
{
    // Logic when drawer starts opening
    Console.WriteLine("Drawer is opening...");
}

private void NavigationDrawer1_Opened(object sender, EventArgs e)
{
    // Logic when drawer is fully open
    Console.WriteLine("Drawer opened");
}

private void NavigationDrawer1_Closing(object sender, CancelEventArgs e)
{
    // Can cancel closing if needed
    // e.Cancel = true;
    Console.WriteLine("Drawer is closing...");
}

private void NavigationDrawer1_Closed(object sender, EventArgs e)
{
    // Logic when drawer is fully closed
    Console.WriteLine("Drawer closed");
}
模式 5:带 Reveal 过渡效果的右侧抽屉
// Create drawer that reveals from behind content
NavigationDrawer drawer = new NavigationDrawer();
drawer.Position = SlidePosition.Right;
drawer.Transition = Transition.Reveal;
drawer.DrawerWidth = 300;
drawer.AnimationDuration = 200;

// Add items
DrawerHeader header = new DrawerHeader { Text = "Options" };
drawer.Items.Add(header);

string[] menuItems = { "Profile", "Settings", "Notifications", "Help" };
foreach (string item in menuItems)
{
    DrawerMenuItem menuItem = new DrawerMenuItem { Text = item };
    drawer.Items.Add(menuItem);
}

this.Controls.Add(drawer);

主要属性

属性类型说明
PositionSlidePosition抽屉滑出位置:Left、Right、Top、Bottom
TransitionTransition动画类型:SlideOnTop、Push、Reveal
DrawerWidthint抽屉面板的宽度
DrawerHeightint抽屉面板的高度
AnimationDurationint抽屉动画的持续时间,单位为毫秒
StyleNavigationDrawerStyle视觉主题:Default、Office2016Colorful 等
ItemsCollectionDrawerHeader 和 DrawerMenuItem 对象的集合
ContentViewContainerControl主内容区域控件的容器

主要方法

方法说明
ToggleDrawer()切换抽屉的显示状态(打开 ↔ 关闭)

主要事件

事件说明
Opening展开过渡开始时触发
Opened展开过渡结束时触发
Closing折叠过渡开始时触发(可取消)
Closed折叠过渡结束时触发

评论

支持 Markdown