Beep Controls Documentation
Modern, themeable WinForms controls for .NET 6, 7, 8, and 9 applications
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
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());
}