syncfusion-winforms-form

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Implementing Windows Forms (SfForm)

实现Windows Forms(SfForm)

The Syncfusion
SfForm
is an advanced window control for Windows Forms applications that provides complete customization of form appearance, custom user interface in the title bar, and comprehensive MDI (Multiple Document Interface) support.
Syncfusion
SfForm
是一款适用于Windows Forms应用的高级窗口控件,支持表单外观完全自定义、在标题栏中添加自定义UI,以及完整的MDI(多文档界面)支持。

When to Use This Skill

何时使用该技能

Use
SfForm
when you need to:
  • Customize title bar appearance - Colors, text alignment, button styles, custom icons
  • Load custom controls in title bar - Add search boxes, navigation controls, or any user control
  • Build MDI applications - Parent forms with multiple child windows
  • Apply professional themes - Built-in Office 2016/2019 and high contrast themes
  • Customize form borders - Active/inactive states, colors, thickness, rounded corners
  • Add shadow effects - Customizable shadow opacity for modern appearance
  • Support rich text in title bar - Display formatted text in form title
  • Localize form elements - Multi-language support for global applications
SfForm vs MetroForm vs Office2007Form:
  • Use
    SfForm
    for modern applications requiring custom title bar controls and full appearance control
  • Use
    MetroForm
    if you only need caption images and labels with built-in skins
  • Use
    Office2007Form
    for Microsoft Office 2007-style UI with built-in color schemes
当你需要实现以下需求时可以使用
SfForm
  • 自定义标题栏外观 - 颜色、文本对齐方式、按钮样式、自定义图标
  • 在标题栏加载自定义控件 - 添加搜索框、导航控件或任意用户控件
  • 构建MDI应用 - 包含多个子窗口的父表单
  • 应用专业主题 - 内置Office 2016/2019以及高对比度主题
  • 自定义表单边框 - 活跃/非活跃状态、颜色、粗细、圆角
  • 添加阴影效果 - 可自定义阴影透明度,实现现代化外观
  • 在标题栏支持富文本 - 在表单标题中展示格式化文本
  • 本地化表单元素 - 面向全球应用的多语言支持
SfForm vs MetroForm vs Office2007Form:
  • 如果你要开发需要自定义标题栏控件和完整外观控制的现代化应用,使用
    SfForm
  • 如果你只需要带内置皮肤的标题图片和标签,使用
    MetroForm
  • 如果你要实现带内置配色方案的Microsoft Office 2007风格UI,使用
    Office2007Form

Key Features

核心特性

  • Title Bar Customization - Height, colors, text alignment, button customization
  • User Control Loading - Place any WinForms control in the title bar
  • MDI Support - Complete parent-child form management
  • Border Customization - Active/inactive border colors and thickness
  • Theme Support - 6 built-in professional themes
  • Rich Text Support - RTF formatting in title bar text
  • Shadow Effects - Adjustable shadow opacity
  • Rounded Corners - Windows 11 style rounded corners
  • Localization - Full resource file support
  • 标题栏定制 - 高度、颜色、文本对齐、按钮自定义
  • 用户控件加载 - 可在标题栏放置任意WinForms控件
  • MDI支持 - 完整的父子表单管理能力
  • 边框定制 - 活跃/非活跃边框颜色和粗细
  • 主题支持 - 6套内置专业主题
  • 富文本支持 - 标题栏文本支持RTF格式化
  • 阴影效果 - 可调整阴影透明度
  • 圆角 - Windows 11风格的圆角效果
  • 本地化 - 完整的资源文件支持

Documentation and Navigation Guide

文档与导航指南

Getting Started

入门指南

📄 Read: references/getting-started.md
  • Assembly deployment and dependencies
  • Converting standard Form to SfForm
  • Basic setup and initialization
  • Initial customization examples
  • Loading user controls to title bar
📄 阅读: references/getting-started.md
  • 程序集部署与依赖
  • 将标准Form转换为SfForm
  • 基础配置与初始化
  • 基础自定义示例
  • 向标题栏加载用户控件

Title Bar Customization

标题栏定制

📄 Read: references/titlebar-customization.md
  • Adjusting title bar height
  • Text alignment (horizontal and vertical)
  • Customizing title bar buttons (icons, colors, states)
  • Hiding buttons (minimize, maximize, close)
  • Rich text formatting in title bar
  • Loading user controls to title bar
  • Icon and caption customization
📄 阅读: references/titlebar-customization.md
  • 调整标题栏高度
  • 文本对齐(水平和垂直)
  • 自定义标题栏按钮(图标、颜色、状态)
  • 隐藏按钮(最小化、最大化、关闭)
  • 标题栏富文本格式化
  • 向标题栏加载用户控件
  • 图标和标题自定义

Form Customization

表单定制

📄 Read: references/form-customization.md
  • Setting and aligning form icons
  • Border customization (active/inactive states)
  • Shadow effect configuration
  • Shadow opacity settings
  • Rounded corners (Windows 11+)
📄 阅读: references/form-customization.md
  • 设置和对齐表单图标
  • 边框自定义(活跃/非活跃状态)
  • 阴影效果配置
  • 阴影透明度设置
  • 圆角(Windows 11及以上)

MDI Customization

MDI定制

📄 Read: references/mdi-customization.md
  • Creating MDI parent forms
  • Adding MDI child forms
  • Customizing child form appearance
  • Getting active MDI child
  • Key event handling in MDI children
📄 阅读: references/mdi-customization.md
  • 创建MDI父表单
  • 添加MDI子表单
  • 自定义子表单外观
  • 获取活跃MDI子窗口
  • MDI子窗口的关键事件处理

Theming

主题设置

📄 Read: references/theming.md
  • Loading theme assemblies
  • Applying themes to forms
  • Available themes (Office2016/2019, HighContrast)
  • Theme customization options
📄 阅读: references/theming.md
  • 加载主题程序集
  • 为表单应用主题
  • 可用主题(Office2016/2019、高对比度)
  • 主题自定义选项

Localization

本地化

📄 Read: references/localization.md
  • Creating resource files for localization
  • Setting culture and UI culture
  • Localizing at sample level
  • Editing default resource files
  • Different assembly/namespace configurations
📄 阅读: references/localization.md
  • 创建本地化所需的资源文件
  • 设置区域文化和UI文化
  • 示例层级的本地化
  • 编辑默认资源文件
  • 不同程序集/命名空间配置

Quick Start

快速开始

Step 1: Add Assembly References

步骤1:添加程序集引用

Add the following references to your project:
  • Syncfusion.Core.WinForms.dll
  • Syncfusion.Shared.Base.dll
向你的项目添加以下引用:
  • Syncfusion.Core.WinForms.dll
  • Syncfusion.Shared.Base.dll

Step 2: Convert Form to SfForm

步骤2:将Form转换为SfForm

csharp
using Syncfusion.WinForms.Controls;

namespace MyApplication
{
    public partial class Form1 : SfForm  // Change from Form to SfForm
    {
        public Form1()
        {
            InitializeComponent();
            
            // Basic customization
            this.Style.TitleBar.BackColor = Color.FromArgb(46, 46, 46);
            this.Style.TitleBar.ForeColor = Color.White;
        }
    }
}
VB.NET:
vb
Imports Syncfusion.WinForms.Controls

Public Class Form1
    Inherits SfForm  ' Change from Form to SfForm
    
    Public Sub New()
        InitializeComponent()
        
        ' Basic customization
        Me.Style.TitleBar.BackColor = Color.FromArgb(46, 46, 46)
        Me.Style.TitleBar.ForeColor = Color.White
    End Sub
End Class
csharp
using Syncfusion.WinForms.Controls;

namespace MyApplication
{
    public partial class Form1 : SfForm  // Change from Form to SfForm
    {
        public Form1()
        {
            InitializeComponent();
            
            // Basic customization
            this.Style.TitleBar.BackColor = Color.FromArgb(46, 46, 46);
            this.Style.TitleBar.ForeColor = Color.White;
        }
    }
}
VB.NET:
vb
Imports Syncfusion.WinForms.Controls

Public Class Form1
    Inherits SfForm  ' Change from Form to SfForm
    
    Public Sub New()
        InitializeComponent()
        
        ' Basic customization
        Me.Style.TitleBar.BackColor = Color.FromArgb(46, 46, 46)
        Me.Style.TitleBar.ForeColor = Color.White
    End Sub
End Class

Step 3: Customize Appearance

步骤3:自定义外观

csharp
// Title bar button colors
this.Style.TitleBar.CloseButtonForeColor = Color.White;
this.Style.TitleBar.MinimizeButtonForeColor = Color.White;
this.Style.TitleBar.MaximizeButtonForeColor = Color.White;

// Button hover colors
this.Style.TitleBar.CloseButtonHoverBackColor = Color.Red;
this.Style.TitleBar.MinimizeButtonHoverBackColor = Color.DarkGray;
this.Style.TitleBar.MaximizeButtonHoverBackColor = Color.DarkGray;

// Form border
this.Style.Border = new Pen(Color.FromArgb(0, 122, 204), 2);
this.Style.InactiveBorder = new Pen(Color.Gray, 2);
csharp
// Title bar button colors
this.Style.TitleBar.CloseButtonForeColor = Color.White;
this.Style.TitleBar.MinimizeButtonForeColor = Color.White;
this.Style.TitleBar.MaximizeButtonForeColor = Color.White;

// Button hover colors
this.Style.TitleBar.CloseButtonHoverBackColor = Color.Red;
this.Style.TitleBar.MinimizeButtonHoverBackColor = Color.DarkGray;
this.Style.TitleBar.MaximizeButtonHoverBackColor = Color.DarkGray;

// Form border
this.Style.Border = new Pen(Color.FromArgb(0, 122, 204), 2);
this.Style.InactiveBorder = new Pen(Color.Gray, 2);

Common Patterns

常用实现模式

Pattern 1: Dark Theme Form

模式1:深色主题表单

csharp
public Form1()
{
    InitializeComponent();
    
    // Dark title bar
    this.Style.TitleBar.BackColor = Color.FromArgb(30, 30, 30);
    this.Style.TitleBar.ForeColor = Color.White;
    this.Style.TitleBar.Height = 35;
    
    // Button styling
    this.Style.TitleBar.CloseButtonForeColor = Color.White;
    this.Style.TitleBar.CloseButtonHoverBackColor = Color.FromArgb(232, 17, 35);
    this.Style.TitleBar.MinimizeButtonForeColor = Color.White;
    this.Style.TitleBar.MaximizeButtonForeColor = Color.White;
    
    // Border and shadow
    this.Style.Border = new Pen(Color.FromArgb(0, 122, 204), 2);
    this.Style.ShadowOpacity = 150;
    
    // Client area
    this.Style.BackColor = Color.FromArgb(45, 45, 48);
}
csharp
public Form1()
{
    InitializeComponent();
    
    // Dark title bar
    this.Style.TitleBar.BackColor = Color.FromArgb(30, 30, 30);
    this.Style.TitleBar.ForeColor = Color.White;
    this.Style.TitleBar.Height = 35;
    
    // Button styling
    this.Style.TitleBar.CloseButtonForeColor = Color.White;
    this.Style.TitleBar.CloseButtonHoverBackColor = Color.FromArgb(232, 17, 35);
    this.Style.TitleBar.MinimizeButtonForeColor = Color.White;
    this.Style.TitleBar.MaximizeButtonForeColor = Color.White;
    
    // Border and shadow
    this.Style.Border = new Pen(Color.FromArgb(0, 122, 204), 2);
    this.Style.ShadowOpacity = 150;
    
    // Client area
    this.Style.BackColor = Color.FromArgb(45, 45, 48);
}

Pattern 2: Custom Title Bar with Search Control

模式2:带搜索控件的自定义标题栏

csharp
public Form1()
{
    InitializeComponent();
    
    // Create search panel
    FlowLayoutPanel searchPanel = new FlowLayoutPanel();
    searchPanel.Size = new Size(250, 28);
    searchPanel.FlowDirection = FlowDirection.LeftToRight;
    
    // Add search label
    Label searchLabel = new Label();
    searchLabel.Text = "Search:";
    searchLabel.ForeColor = Color.White;
    searchLabel.AutoSize = true;
    searchLabel.Margin = new Padding(5, 5, 5, 0);
    
    // Add search textbox
    TextBox searchBox = new TextBox();
    searchBox.Width = 180;
    searchBox.Margin = new Padding(5, 2, 0, 0);
    
    searchPanel.Controls.Add(searchLabel);
    searchPanel.Controls.Add(searchBox);
    
    // Load to title bar
    this.TitleBarTextControl = searchPanel;
    
    // Style title bar
    this.Style.TitleBar.BackColor = Color.FromArgb(0, 120, 215);
    this.Style.TitleBar.Height = 35;
}
csharp
public Form1()
{
    InitializeComponent();
    
    // Create search panel
    FlowLayoutPanel searchPanel = new FlowLayoutPanel();
    searchPanel.Size = new Size(250, 28);
    searchPanel.FlowDirection = FlowDirection.LeftToRight;
    
    // Add search label
    Label searchLabel = new Label();
    searchLabel.Text = "Search:";
    searchLabel.ForeColor = Color.White;
    searchLabel.AutoSize = true;
    searchLabel.Margin = new Padding(5, 5, 5, 0);
    
    // Add search textbox
    TextBox searchBox = new TextBox();
    searchBox.Width = 180;
    searchBox.Margin = new Padding(5, 2, 0, 0);
    
    searchPanel.Controls.Add(searchLabel);
    searchPanel.Controls.Add(searchBox);
    
    // Load to title bar
    this.TitleBarTextControl = searchPanel;
    
    // Style title bar
    this.Style.TitleBar.BackColor = Color.FromArgb(0, 120, 215);
    this.Style.TitleBar.Height = 35;
}

Pattern 3: MDI Parent with Child Forms

模式3:带子表单的MDI父表单

csharp
// Parent Form
public class MainForm : SfForm
{
    public MainForm()
    {
        InitializeComponent();
        
        // Enable MDI container
        this.IsMdiContainer = true;
        
        // Customize parent appearance
        this.Style.TitleBar.BackColor = Color.FromArgb(0, 122, 204);
        this.Style.TitleBar.ForeColor = Color.White;
    }
    
    private void CreateChildForm()
    {
        // Create child form
        SfForm childForm = new SfForm();
        childForm.Text = "Child Window 1";
        childForm.MdiParent = this;
        
        // Customize child appearance
        childForm.Style.TitleBar.BackColor = Color.White;
        childForm.Style.TitleBar.ForeColor = Color.Black;
        childForm.Style.Border = new Pen(Color.LightGray, 1);
        
        childForm.Show();
    }
}
csharp
// Parent Form
public class MainForm : SfForm
{
    public MainForm()
    {
        InitializeComponent();
        
        // Enable MDI container
        this.IsMdiContainer = true;
        
        // Customize parent appearance
        this.Style.TitleBar.BackColor = Color.FromArgb(0, 122, 204);
        this.Style.TitleBar.ForeColor = Color.White;
    }
    
    private void CreateChildForm()
    {
        // Create child form
        SfForm childForm = new SfForm();
        childForm.Text = "Child Window 1";
        childForm.MdiParent = this;
        
        // Customize child appearance
        childForm.Style.TitleBar.BackColor = Color.White;
        childForm.Style.TitleBar.ForeColor = Color.Black;
        childForm.Style.Border = new Pen(Color.LightGray, 1);
        
        childForm.Show();
    }
}

Pattern 4: Apply Built-in Theme

模式4:应用内置主题

csharp
// In Program.cs
static class Program
{
    [STAThread]
    static void Main()
    {
        // Register Syncfusion license
        Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR_LICENSE_KEY");
        
        // Load theme assemblies
        SfSkinManager.LoadAssembly(typeof(Office2016Theme).Assembly);
        SfSkinManager.LoadAssembly(typeof(Office2019Theme).Assembly);
        
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

// In Form
public Form1()
{
    InitializeComponent();
    
    // Apply theme
    this.ThemeName = "Office2016Colorful";
}
csharp
// In Program.cs
static class Program
{
    [STAThread]
    static void Main()
    {
        // Register Syncfusion license
        Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR_LICENSE_KEY");
        
        // Load theme assemblies
        SfSkinManager.LoadAssembly(typeof(Office2016Theme).Assembly);
        SfSkinManager.LoadAssembly(typeof(Office2019Theme).Assembly);
        
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new Form1());
    }
}

// In Form
public Form1()
{
    InitializeComponent();
    
    // Apply theme
    this.ThemeName = "Office2016Colorful";
}

Pattern 5: Localized Form

模式5:本地化表单

csharp
public Form1()
{
    // Set culture before initialization
    System.Threading.Thread.CurrentThread.CurrentCulture = 
        new System.Globalization.CultureInfo("de-DE");
    System.Threading.Thread.CurrentThread.CurrentUICulture = 
        new System.Globalization.CultureInfo("de-DE");
    
    InitializeComponent();
}
csharp
public Form1()
{
    // Set culture before initialization
    System.Threading.Thread.CurrentThread.CurrentCulture = 
        new System.Globalization.CultureInfo("de-DE");
    System.Threading.Thread.CurrentThread.CurrentUICulture = 
        new System.Globalization.CultureInfo("de-DE");
    
    InitializeComponent();
}

Key Properties

关键属性

Form Properties

表单属性

  • Style
    - Access all appearance customization options
  • TitleBarTextControl
    - Load custom user control to title bar
  • AllowRoundedCorners
    - Enable Windows 11 style rounded corners (bool)
  • ThemeName
    - Apply built-in theme (string)
  • IsMdiContainer
    - Enable MDI parent mode (bool)
  • Style
    - 访问所有外观自定义选项
  • TitleBarTextControl
    - 向标题栏加载自定义用户控件
  • AllowRoundedCorners
    - 启用Windows 11风格圆角(布尔值)
  • ThemeName
    - 应用内置主题(字符串)
  • IsMdiContainer
    - 启用MDI父模式(布尔值)

TitleBar Properties (Style.TitleBar)

标题栏属性(Style.TitleBar)

  • Height
    - Title bar height (int)
  • BackColor
    - Title bar background color
  • ForeColor
    - Title bar text color
  • TextHorizontalAlignment
    - Left, Center, Right
  • TextVerticalAlignment
    - Top, Center, Bottom
  • IconHorizontalAlignment
    - Icon horizontal position
  • IconVerticalAlignment
    - Icon vertical position
  • AllowRichText
    - Enable RTF formatting (bool)
  • Height
    - 标题栏高度(整数)
  • BackColor
    - 标题栏背景色
  • ForeColor
    - 标题栏文本颜色
  • TextHorizontalAlignment
    - 左对齐、居中、右对齐
  • TextVerticalAlignment
    - 顶部对齐、居中、底部对齐
  • IconHorizontalAlignment
    - 图标水平位置
  • IconVerticalAlignment
    - 图标垂直位置
  • AllowRichText
    - 启用RTF格式化(布尔值)

Button Properties (Style.TitleBar)

按钮属性(Style.TitleBar)

  • CloseButtonForeColor
    - Close button icon color
  • MinimizeButtonForeColor
    - Minimize button icon color
  • MaximizeButtonForeColor
    - Maximize button icon color
  • CloseButtonHoverBackColor
    - Close button hover background
  • CloseButtonPressedBackColor
    - Close button pressed background
  • CloseButtonImage
    - Custom close button icon
  • CloseButtonHoverImage
    - Custom close button hover icon
  • CloseButtonPressedImage
    - Custom close button pressed icon
  • CloseButtonForeColor
    - 关闭按钮图标颜色
  • MinimizeButtonForeColor
    - 最小化按钮图标颜色
  • MaximizeButtonForeColor
    - 最大化按钮图标颜色
  • CloseButtonHoverBackColor
    - 关闭按钮悬停背景色
  • CloseButtonPressedBackColor
    - 关闭按钮按下背景色
  • CloseButtonImage
    - 自定义关闭按钮图标
  • CloseButtonHoverImage
    - 自定义关闭按钮悬停图标
  • CloseButtonPressedImage
    - 自定义关闭按钮按下图标

Border and Shadow Properties (Style)

边框和阴影属性(Style)

  • Border
    - Active state border (Pen)
  • InactiveBorder
    - Inactive state border (Pen)
  • ShadowOpacity
    - Active shadow opacity (0-255)
  • InactiveShadowOpacity
    - Inactive shadow opacity (0-255)
  • Border
    - 活跃状态边框(Pen)
  • InactiveBorder
    - 非活跃状态边框(Pen)
  • ShadowOpacity
    - 活跃状态阴影透明度(0-255)
  • InactiveShadowOpacity
    - 非活跃状态阴影透明度(0-255)

Common Use Cases

常见使用场景

Use Case 1: Modern Application with Custom Title Bar

场景1:带自定义标题栏的现代化应用

Scenario: Building a modern desktop application with branding in the title bar
Solution: Use
TitleBarTextControl
to load a panel with logo and navigation controls
Reference: titlebar-customization.md
场景: 开发在标题栏中包含品牌标识的现代化桌面应用
解决方案: 使用
TitleBarTextControl
加载包含logo和导航控件的面板
参考文档: titlebar-customization.md

Use Case 2: Document Editor with MDI

场景2:带MDI的文档编辑器

Scenario: Creating a text editor that supports multiple open documents
Solution: Use MDI parent form with child forms for each document
Reference: mdi-customization.md
场景: 开发支持同时打开多个文档的文本编辑器
解决方案: 使用MDI父表单,每个文档对应一个子表单
参考文档: mdi-customization.md

Use Case 3: Enterprise Application with Consistent Branding

场景3:品牌风格统一的企业应用

Scenario: Apply company theme across all forms in the application
Solution: Use built-in themes or create custom theme with Style properties
Reference: theming.md
场景: 为应用内所有表单应用统一的公司主题
解决方案: 使用内置主题或通过Style属性创建自定义主题
参考文档: theming.md

Use Case 4: Multi-language Application

场景4:多语言应用

Scenario: Support multiple languages for international users
Solution: Implement localization with resource files
Reference: localization.md
场景: 为国际用户支持多语言
解决方案: 通过资源文件实现本地化
参考文档: localization.md

Use Case 5: Minimalist Form Design

场景5:极简表单设计

Scenario: Create clean, distraction-free form with minimal UI
Solution: Hide title bar buttons, use custom colors, add subtle shadow
Reference: form-customization.md
场景: 创建简洁、无干扰的极简UI表单
解决方案: 隐藏标题栏按钮、使用自定义颜色、添加柔和阴影
参考文档: form-customization.md

Comparison with Other Form Controls

与其他表单控件的对比

FeatureSfFormMetroFormOffice2007Form
Custom Title Bar Controls✅ Yes❌ No❌ No
MDI Support✅ Yes✅ Yes✅ Yes
Active/Inactive Border✅ Yes⚠️ Limited⚠️ Limited
Rich Text Title✅ Yes❌ No❌ No
Shadow Customization✅ Yes❌ No❌ No
Rounded Corners✅ Yes (Win11+)❌ No❌ No
Theme Support✅ 6 themes✅ Built-in skins✅ Office schemes
Caption Images✅ Yes✅ Yes✅ Yes
Recommendation: Use
SfForm
for maximum flexibility and modern features. Use
MetroForm
or
Office2007Form
only for legacy applications or specific style requirements.
特性SfFormMetroFormOffice2007Form
自定义标题栏控件✅ 支持❌ 不支持❌ 不支持
MDI支持✅ 支持✅ 支持✅ 支持
活跃/非活跃边框✅ 支持⚠️ 有限支持⚠️ 有限支持
富文本标题✅ 支持❌ 不支持❌ 不支持
阴影自定义✅ 支持❌ 不支持❌ 不支持
圆角✅ 支持(Win11及以上)❌ 不支持❌ 不支持
主题支持✅ 6套主题✅ 内置皮肤✅ Office配色方案
标题图片✅ 支持✅ 支持✅ 支持
推荐: 如需最大灵活性和现代化特性请使用
SfForm
。仅当开发 legacy 应用或者有特定风格要求时使用
MetroForm
Office2007Form

Tips and Best Practices

提示与最佳实践

Performance

性能

  • Set all style properties in the constructor before showing the form
  • Use
    SuspendLayout()
    /
    ResumeLayout()
    when adding multiple controls
  • Dispose of custom images and resources properly
  • 在表单展示前的构造函数中设置所有样式属性
  • 添加多个控件时使用
    SuspendLayout()
    /
    ResumeLayout()
  • 正确释放自定义图片和资源

Design

设计

  • Keep title bar height between 30-40 pixels for optimal appearance
  • Use subtle shadows (opacity 100-150) for professional look
  • Ensure sufficient contrast between title bar and buttons
  • Test custom title bar controls at different DPI settings
  • 标题栏高度保持在30-40像素之间以获得最佳外观
  • 使用柔和的阴影(透明度100-150)实现专业效果
  • 确保标题栏和按钮之间有足够的对比度
  • 在不同DPI设置下测试自定义标题栏控件

MDI Applications

MDI应用

  • Set
    IsMdiContainer = true
    before creating child forms
  • Apply consistent styling to all child forms
  • Use
    ActiveMdiChild
    to manage current child window
  • Consider using menu strip for window management
  • 创建子表单前先设置
    IsMdiContainer = true
  • 为所有子表单应用统一的样式
  • 使用
    ActiveMdiChild
    管理当前子窗口
  • 考虑使用菜单条实现窗口管理

Theme Usage

主题使用

  • Load theme assemblies in
    Program.cs
    before creating forms
  • Apply consistent theme across all forms in application
  • Test with HighContrast theme for accessibility
  • Avoid mixing themed and non-themed forms
  • 在创建表单前在
    Program.cs
    中加载主题程序集
  • 为应用内所有表单应用统一的主题
  • 测试高对比度主题以确保无障碍性
  • 避免混合使用带主题和不带主题的表单

Accessibility

无障碍性

  • Provide sufficient color contrast for title bar text
  • Support keyboard navigation for all custom controls
  • Test with Windows high contrast settings
  • Ensure custom title bar controls are accessible
  • 为标题栏文本提供足够的颜色对比度
  • 所有自定义控件支持键盘导航
  • 在Windows高对比度设置下测试
  • 确保自定义标题栏控件可被无障碍工具识别

Troubleshooting

故障排除

Title bar custom control not visible:
  • Ensure control size fits within title bar height
  • Check control's
    Visible
    property is
    true
  • Verify background colors aren't transparent
Theme not applying:
  • Verify theme assembly is loaded in
    Program.cs
  • Check theme name spelling (case-sensitive)
  • Ensure
    ThemeName
    is set after
    InitializeComponent()
MDI child not displaying:
  • Verify parent's
    IsMdiContainer = true
  • Check child's
    MdiParent
    is set correctly
  • Ensure child form is shown with
    .Show()
    not
    .ShowDialog()
Border not showing:
  • Verify
    FormBorderStyle
    is not
    None
  • Check
    Border
    pen width is > 0
  • Ensure border color contrasts with background
标题栏自定义控件不可见:
  • 确保控件尺寸适合标题栏高度
  • 检查控件的
    Visible
    属性为
    true
  • 确认背景色不是透明的
主题不生效:
  • 确认
    Program.cs
    中已加载主题程序集
  • 检查主题名称拼写(区分大小写)
  • 确保
    ThemeName
    InitializeComponent()
    之后设置
MDI子窗口不显示:
  • 确认父表单
    IsMdiContainer = true
  • 检查子表单的
    MdiParent
    设置正确
  • 确认子表单通过
    .Show()
    而非
    .ShowDialog()
    展示
边框不显示:
  • 确认
    FormBorderStyle
    不是
    None
  • 检查
    Border
    的画笔宽度大于0
  • 确保边框颜色与背景色有足够对比度

Related Components

相关组件

  • MetroForm - Alternative form with built-in Metro styling
  • Office2007Form - Alternative form with Office 2007 appearance
  • Ribbon - For Office-style ribbon interface in title bar area
  • SfSkinManager - For applying themes globally
  • MetroForm - 带内置Metro风格的替代表单控件
  • Office2007Form - 带Office 2007外观的替代表单控件
  • Ribbon - 用于在标题栏区域实现Office风格的Ribbon界面
  • SfSkinManager - 用于全局应用主题

Additional Resources

额外资源

  • API Reference: SfForm Class Documentation
  • Sample Applications: Check installation directory for complete examples
  • Support: Syncfusion Community Forums
  • API参考: SfForm Class Documentation
  • 示例应用: 查看安装目录获取完整示例
  • 技术支持: Syncfusion社区论坛