关于 syncfusion-winforms-status-bar
此技能介绍如何在 Windows Forms 应用中实现 Syncfusion StatusBarAdv,面向需要在窗体底部显示状态信息并配置面板布局与样式的开发者。指南涵盖主题、背景、边框、自动尺寸及子控件。
主要功能
- 01多面板状态信息
- 02渐变、图案与纯色背景
- 03Office 2016 和 Metro 样式
- 04面板对齐与间距设置
- 05自动调整尺寸与高度
- 06嵌入 WinForms 子控件
适用场景
- 01显示应用状态与操作进度
- 02在面板中显示日期和时间
- 03展示文化或本地化信息
- 04为长时间操作添加进度条
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ syncfusion/ winforms-ui-components-skills --skill syncfusion-winforms-status-bar安装后在 Claude Code 中输入/syncfusion-winforms-status-bar确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/appearance-styling.mdborders-and-themes.mdevents-and-behavior.mdgetting-started.mdpanels-and-layout.md详细介绍
实现状态栏(StatusBarAdv)
本技能将指导你在 Windows Forms 应用程序中实现 Syncfusion StatusBarAdv 控件。StatusBarAdv 是一种高级状态栏,可显示具有增强背景和外观的面板,并支持 Office2016 主题。
何时使用此技能
在以下情况下使用此技能:
- 在窗体底部显示应用程序状态信息
- 实现具有渐变背景和样式化面板的增强型状态栏
- 在状态面板中显示日期/时间、区域性信息或按键状态
- 使用 Office2016 或 Metro 主题创建外观专业的状态栏
- 向状态栏添加自定义控件或面板
- 配置状态栏显示中的面板对齐方式和间距
- 为状态栏应用高级边框和背景样式
- 处理状态栏属性更改事件
组件概述
StatusBarAdv 是一种高级状态栏控件,它扩展了标准 Windows Forms StatusBar,并提供以下功能:
- StatusBarAdvPanel 集合:添加多个具有自定义内容和样式的面板
- 增强背景:使用 BrushInfo 提供渐变、图案和纯色选项
- Office2016 主题:支持 Colorful、White、Black 和 DarkGray 主题
- 边框自定义:使用自定义颜色设置 2D 和 3D 边框样式
- 面板对齐:提供 Center、Near、Far 和自定义定位选项
- 自动调整大小:自动调整面板高度
- Metro 样式:提供现代化的扁平设计选项
- 调整大小手柄:可调整窗体大小的指示器
- 子控件:向状态栏添加任意 WinForms 控件
程序集: Syncfusion.Tools.Windows
依赖项: Syncfusion.Shared.Base、Syncfusion.Tools.Windows
命名空间: Syncfusion.Windows.Forms.Tools
文档与导航指南
入门
📄 阅读: references/getting-started.md
何时阅读: 首次实现 StatusBarAdv、设置程序集或创建基本状态栏时。
- 程序集要求和安装
- NuGet 包安装
- 使用工具箱进行基于设计器的设置
- 以编程方式创建和初始化
- 添加 StatusBarAdvPanel 控件
- 基本配置和停靠
- 常见设置问题的故障排除
面板与布局
📄 阅读: references/panels-and-layout.md
何时阅读: 管理多个面板、配置间距、自定义面板对齐方式或定位控件时。
- StatusBarAdvPanel 集合管理
- 面板间距配置
- 用于面板大小调整的 CustomLayoutBounds
- 对齐选项(Center、Near、Far、ChildConstraints)
- 用于水平对齐的 SetHAlign 方法
- 面板定位和大小调整
- 向 StatusBarAdv 添加子控件
- 布局自定义模式
外观与样式
📄 阅读: references/appearance-styling.md
何时阅读: 自定义状态栏外观、应用渐变、设置颜色或添加调整大小手柄时。
- 使用 BrushInfo 的 BackgroundColor 属性
- 渐变背景(6 种渐变样式)
- 图案样式和纯色
- GradientColors 数组配置
- MetroColor 和 UseMetroColorAsBorder
- ForeColor 自定义
- 显示 SizingGrip
- 完整样式示例
边框与主题
📄 阅读: references/borders-and-themes.md
何时阅读: 应用边框、使用 Office2016 主题、启用 Metro 样式或配置主题背景时。
- BorderStyle 属性(None、FixedSingle、Fixed3D)
- Border3DStyle 选项(10 种样式)
- 2D 边框配置(BorderColor、BorderSingle、BorderSides)
- Office2016 主题(Colorful、White、Black、DarkGray)
- 应用 Metro 样式
- ThemesEnabled 和 IgnoreThemeBackground
- 完整主题示例
事件和行为
📄 阅读: references/events-and-behavior.md
何时阅读: 实现自动调整大小、处理属性更改事件,或响应边框/渐变更改时。
- AutoSize 和 AutoSizeMode 配置
- 用于面板高度的 AutoHeightControls
- GetPreferredSize 和 SetPreferredSize 方法
- 9 个属性更改事件
- BorderSidesChanged、BorderColorChanged 事件
- GradientBackgroundChanged 事件
- ThemeChanged 事件
- 事件处理模式
快速入门示例
带面板的基本 StatusBarAdv
C#:
using Syncfusion.Windows.Forms.Tools;
using System.Drawing;
using System.Windows.Forms;
public partial class MainForm : Form
{
private StatusBarAdv statusBarAdv1;
private StatusBarAdvPanel culturePanel;
private StatusBarAdvPanel datePanel;
private StatusBarAdvPanel timePanel;
public MainForm()
{
InitializeComponent();
SetupStatusBar();
}
private void SetupStatusBar()
{
// Create StatusBarAdv
statusBarAdv1 = new StatusBarAdv
{
Dock = DockStyle.Bottom,
BackColor = Color.LightSteelBlue,
BorderColor = Color.DarkSlateGray,
BorderStyle = BorderStyle.FixedSingle,
SizingGrip = true
};
// Create panels
culturePanel = new StatusBarAdvPanel
{
PanelType = StatusBarAdvPanelType.CurrentCulture,
Size = new Size(120, 27)
};
datePanel = new StatusBarAdvPanel
{
PanelType = StatusBarAdvPanelType.ShortDate,
Size = new Size(100, 27)
};
timePanel = new StatusBarAdvPanel
{
PanelType = StatusBarAdvPanelType.ShortTime,
Size = new Size(100, 27)
};
// Add panels to StatusBarAdv
statusBarAdv1.Controls.Add(culturePanel);
statusBarAdv1.Controls.Add(datePanel);
statusBarAdv1.Controls.Add(timePanel);
// Add to form
this.Controls.Add(statusBarAdv1);
}
}
VB.NET:
Imports Syncfusion.Windows.Forms.Tools
Imports System.Drawing
Imports System.Windows.Forms
Public Partial Class MainForm
Inherits Form
Private statusBarAdv1 As StatusBarAdv
Private culturePanel As StatusBarAdvPanel
Private datePanel As StatusBarAdvPanel
Private timePanel As StatusBarAdvPanel
Public Sub New()
InitializeComponent()
SetupStatusBar()
End Sub
Private Sub SetupStatusBar()
' Create StatusBarAdv
statusBarAdv1 = New StatusBarAdv With {
.Dock = DockStyle.Bottom,
.BackColor = Color.LightSteelBlue,
.BorderColor = Color.DarkSlateGray,
.BorderStyle = BorderStyle.FixedSingle,
.SizingGrip = True
}
' Create panels
culturePanel = New StatusBarAdvPanel With {
.PanelType = StatusBarAdvPanelType.CurrentCulture,
.Size = New Size(120, 27)
}
datePanel = New StatusBarAdvPanel With {
.PanelType = StatusBarAdvPanelType.ShortDate,
.Size = New Size(100, 27)
}
timePanel = New StatusBarAdvPanel With {
.PanelType = StatusBarAdvPanelType.ShortTime,
.Size = New Size(100, 27)
}
' Add panels to StatusBarAdv
statusBarAdv1.Controls.Add(culturePanel)
statusBarAdv1.Controls.Add(datePanel)
statusBarAdv1.Controls.Add(timePanel)
' Add to form
Me.Controls.Add(statusBarAdv1)
End Sub
End Class
常见模式
1. 使用 Metro 主题的渐变背景
应用具有 Metro 样式的现代渐变背景:
// Set gradient background (will be overridden if Metro style is applied)
statusBarAdv1.BackgroundColor = new BrushInfo(
GradientStyle.Horizontal,
Color.AliceBlue,
Color.LightSteelBlue
);
// Apply Metro style (this overrides BackgroundColor)
statusBarAdv1.Style = StatusbarStyle.Metro;
// Set metro accent color
statusBarAdv1.MetroColor = ColorTranslator.FromHtml("#16a5dc");
statusBarAdv1.UseMetroColorAsBorder = true;
注意: 设置
Style = StatusbarStyle.Metro时,任何自定义BackgroundColor渐变都会被忽略。Metro 样式请改用MetroColor和UseMetroColorAsBorder。
2. 自定义面板对齐方式
使用 ChildConstraints 为面板设置自定义位置:
// Enable custom alignment
statusBarAdv1.Alignment = FlowAlignment.ChildConstraints;
// Left-align first panel
statusBarAdv1.SetHAlign(panel1, HorzFlowAlign.Left);
// Right-align second panel
statusBarAdv1.SetHAlign(panel2, HorzFlowAlign.Right);
// Justify third panel to fill space
statusBarAdv1.SetHAlign(panel3, HorzFlowAlign.Justify);
3. 使用自动调整大小的 Office2016 主题
应用 Office2016 主题并自动调整高度:
// Apply Office2016 Colorful theme
statusBarAdv1.Style = StatusbarStyle.Office2016Colorful;
// Enable auto-sizing
statusBarAdv1.AutoSize = true;
statusBarAdv1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
// Auto-adjust panel heights
statusBarAdv1.AutoHeightControls = true;
主要属性
StatusBarAdv 属性
| 属性 | 类型 | 说明 |
|---|---|---|
BackgroundColor | BrushInfo | 背景渐变、图案或纯色配置 |
BorderStyle | BorderStyle | 边框类型:None、FixedSingle 或 Fixed3D |
Border3DStyle | Border3DStyle | 3D 边框样式(10 个选项:Raised、Sunken 等) |
BorderColor | Color | 2D 边框颜色(需要 BorderStyle.FixedSingle) |
BorderSingle | ButtonBorderStyle | 2D 边框样式:Solid、Dashed、Dotted 等 |
BorderSides | Border3DSide | 要显示的边框边:Left、Top、Right、Bottom、All |
Style | StatusbarStyle | 主题:Default、Metro、Office2016Colorful、Office2016White、Office2016Black、Office2016DarkGray |
Panels | Collection | StatusBarAdv 中的 StatusBarAdvPanel 控件 |
Alignment | FlowAlignment | 面板对齐方式:Center、Near、Far、ChildConstraints |
Spacing | Size | 面板之间的间距 |
CustomLayoutBounds | Rectangle | 用于面板布局的自定义矩形 |
SizingGrip | bool | 显示用于可调整大小窗体的尺寸调整手柄 |
AutoSize | bool | 自动调整大小以适应内容 |
AutoSizeMode | AutoSizeMode | 调整大小模式:GrowAndShrink 或 GrowOnly |
AutoHeightControls | bool | 自动将面板高度调整为 StatusBarAdv 的高度 |
MetroColor | Color | Metro 主题强调色 |
UseMetroColorAsBorder | bool | 使用 MetroColor 作为边框颜色 |
ThemesEnabled | bool | 启用主题背景绘制 |
IgnoreThemeBackground | bool | 忽略主题背景并改用 BackColor |
StatusBarAdvPanel 属性
| 属性 | 类型 | 说明 |
|---|---|---|
PanelType | StatusBarAdvPanelType | 面板内容类型。取值包括:None(无内容)、Text(自定义文本)、CurrentCulture(区域性信息)、ShortDate(日期)、ShortTime(时间)、Owner(所有者绘制的内容)。 |
Size | Size | 面板尺寸 |
Text | string | 要在面板中显示的自定义文本 |
StatusBarAdv 扩展器方法
| 方法 | 说明 |
|---|---|
SetHAlign(StatusBarAdvPanel, HorzFlowAlign) | 设置特定面板的水平对齐方式(Left、Center、Right、Justify)。 |
GetHAlign(StatusBarAdvPanel) | 获取特定面板当前的水平对齐方式。 |
常见用例
- 应用程序状态显示:显示就绪状态、连接状态或操作进度
- 日期/时间信息:使用内置面板类型显示当前日期和时间
- 区域性和本地化:使用 CurrentCulture 面板显示当前区域性信息
- 进度指示器:将 ProgressBar 控件添加到状态栏,以显示长时间运行的操作
- 文档信息:显示文件名、行/列位置或字数
- 网络状态:使用自定义面板显示连接状态或服务器状态
- 用户会话信息:显示已登录用户的名称或会话详情
- 主题化应用程序:应用 Office2016 或 Metro 主题,保持 UI 一致
其他资源
- Syncfusion 文档:StatusBarAdv 官方文档
- 面板参考:请参阅 StatusBarAdvPanel 文档,了解面板专属属性
- 主题支持:StatusBarAdv 支持通过 VisualStyleManager 为整个应用程序设置主题
后续步骤
完成 StatusBarAdv 的基本实现后:
- 添加多个面板 → 阅读:references/panels-and-layout.md
- 自定义外观 → 阅读:references/appearance-styling.md
- 应用主题 → 阅读:references/borders-and-themes.md