Overview

TheTechIdea.Beep.Winform.Controls is a comprehensive library of modern, themeable WinForms controls for .NET 6, 7, 8, and 9. Every control inherits from BaseControl, which uses a Painter Strategy Pattern to separate rendering from behavior. Forms use BeepiFormPro — a fully custom-drawn Form with 35+ form styles (Material, Fluent, macOS, Cyberpunk, Nord, Dracula, etc.). The entire system is coordinated by BeepThemesManager (global theme switching) and BeepStyling (27 design systems for backgrounds, borders, shadows, and typography).

Core Architecture

BaseControl

All controls inherit from BaseControl (partial class). Provides automatic theming via IBeepUIComponent, a pluggable painter system (PainterKind: Classic, Material, Card, Glassmorphism, Neumorphism, etc.), DPI scaling, data binding, hit testing, and tooltip support.

BeepiFormPro

Modern borderless Form with 35+ styles via FormStyle enum (Modern, Material, Fluent, macOS, iOS, Cyberpunk, Dracula, Nord, Terminal, etc.). Each style has a dedicated IFormPainter that handles caption bar, buttons, borders, and backdrop rendering.

BeepThemesManager

Static manager that discovers all IBeepTheme implementations via assembly scanning. Fires ThemeChanged and FormStyleChanged events. All controls and forms automatically respond to theme switches at runtime.

BeepStyling

Central styling coordinator with 130+ painter classes across 7 folders: BackgroundPainters, BorderPainters, TextPainters, ShadowPainters, SpinnerButtonPainters, PathPainters, and ImagePainters — supporting 27 design systems (Material3, Fluent2, iOS15, AntDesign, ChakraUI, etc.).

Painter Strategy

Rendering pipeline: OnPaint → EnsurePainter() → _painter.UpdateLayout() → _painter.Paint() → DrawingRect. Derived controls only paint their inner content into DrawingRect — all outer styling (borders, shadows, backgrounds) is handled by the painter.

Image System

All controls reference images via ImagePath (string). StyledImagePainter handles SVG/PNG rendering with theme-aware tinting. Images are cached globally via BeepStyling.ImageCachedPainters.

🚀 Quick Start

Get started with Beep Controls in just a few minutes

Library Statistics

80+ Controls Available
35+ Form Styles (BeepiFormPro)
27 Design Systems (BeepStyling)
130+ Painter Classes

Installation

Install the package using one of the following methods:

Package Manager Console

Install-Package TheTechIdea.Beep.Winform.Controls

.NET CLI

dotnet add package TheTechIdea.Beep.Winform.Controls

Package Reference

<PackageReference Include="TheTechIdea.Beep.Winform.Controls" Version="1.0.164" />

Basic Usage

Every Beep control inherits from BaseControl. Use BeepiFormPro instead of Form for modern themed windows, and BeepThemesManager for global theme control:

Using BeepiFormPro + BaseControl + BeepThemesManager

using TheTechIdea.Beep.Winform.Controls;
using TheTechIdea.Beep.Winform.Controls.Base;
using TheTechIdea.Beep.Winform.Controls.Forms.ModernForm;
using TheTechIdea.Beep.Winform.Controls.ThemeManagement;

// Use BeepiFormPro for modern custom-drawn form
public class MainForm : BeepiFormPro
{
    public MainForm()
    {
        Text = "My App";
        Size = new Size(800, 600);
        FormStyle = FormStyle.Material;    // 35+ styles available
        
        // Create a themed button (inherits BaseControl)
        var btn = new BeepButton();
        btn.Text = "Hello Beep!";
        btn.Size = new Size(160, 45);
        btn.Location = new Point(50, 100);
        btn.ImagePath = "icons/save.svg";  // Images by path, always
        btn.Click += (s, e) => MessageBox.Show("Hello!");
        Controls.Add(btn);
    }
}

// In Program.cs
static void Main()
{
    ApplicationConfiguration.Initialize();
    
    // Global theme switch — all controls respond automatically
    BeepThemesManager.ApplyTheme("MaterialBlue");
    
    Application.Run(new MainForm());
}