A custom WinForms UI control library with rich styling, RGB effects, gradients, lighting, and rounding.
- ๐ About
- โจ Features
- ๐ Getting Started
- ๐ก Usage
- ๐ API Reference
- ๐งช Running Tests
- ๐๏ธ Project Structure
- ๐ Demos
- ๐ค Contributing
- ๐ฎ Roadmap
- ๐ License
WinForms.FC_UI is a custom UI control library for Windows Forms applications. It provides a set of fully customizable controls โ buttons, checkboxes, radio buttons, switches, progress bars, scroll bars, text boxes, group boxes, and a color picker โ all built with GDI+ custom rendering.
Each control supports fine-grained visual customization including background color, border, gradient fills, lighting/shadow effects, corner rounding, click animations, and an animated RGB color-cycling mode.
| Characteristic | Value |
|---|---|
| Created | 2020 |
| Framework | .NET 10 (Windows Forms) |
| Language | C# |
| Controls | 10 custom controls + 1 component |
| Control | Effects | RGB Mode | Random Style | Gradient BG | Gradient Border | Lighting | Rounding | Resize |
|---|---|---|---|---|---|---|---|---|
| FButton | โ | โ | โ | โ | โ | โ | โ | โ |
| FCheckBox | โ | โ | โ | โ | โ | โ | โ | โ |
| FRadioButton | โ | โ | โ | โ | โ | โ | โ | โ |
| FSwitchBox | โ | โ | โ | โ | โ | โ | โ | โ |
| FProgressBar | โ | โ | โ | โ | โ | โ | โ | โ |
| FScrollBar | โ | โ | โ | โ | โ | โ | โ | โ |
| FRichTextBox | โ | โ | โ | โ | โ | โ | โ | โ |
| FTextBox | โ | โ | โ | โ | โ | โ | โ | โ |
| FGroupBox | โ | โ | โ | โ | โ | โ | โ | โ |
| ZColorPicker | โ | โ | โ | โ | โ | โ | โ | โ |
Key capabilities:
- Fine-grained styling โ background, border, effects, gradient, lighting, rounding, smoothing mode, font, and more
- RGB mode โ animated HSV color cycling across controls
- Random style โ randomly generates control appearance parameters
- Click effects โ circle ripple and white overlay animations (FButton, FCheckBox, FRadioButton)
- Gradient fills โ linear gradients for background and border
- Lighting/shadow โ blurred shadow effect around controls
- Corner rounding โ percentage-based corner radius for any control
- Global RGB component โ synchronizes RGB animation across all FC_UI controls
- SDK: .NET 10 SDK or later
- Language: C# 14
- Platform: Windows (WinForms)
Clone the repository and add a project reference:
<ProjectReference Include="path\to\src\WinForms.FC_UI.csproj" />using FC_UI.Controls;
// Create and configure an FButton
var button = new FButton
{
FButtonStyle = FButton.Style.Default,
TextButton = "Click me",
ColorBackground = Color.FromArgb(37, 52, 68),
ColorBackground_Pen = Color.FromArgb(29, 200, 238),
Rounding = true,
RoundingInt = 70,
Effect_1 = true,
BackgroundPen = true,
Background_WidthPen = 4F
};
this.Controls.Add(button);
// Enable RGB mode
button.RGB = true;
// Or use the Random style for a surprise
button.FButtonStyle = FButton.Style.Random;๐ See the full working demo in examples/WinForms.FC_UI.Example/.
| Control | Description |
|---|---|
FButton |
Customizable button with click effects, gradients, lighting, and RGB mode |
FCheckBox |
Checkbox with circle animation effects and gradient support |
FRadioButton |
Radio button with customizable checked indicator and effects |
FSwitchBox |
Toggle switch with smooth visual feedback |
FProgressBar |
Progress indicator with gradient fill and text overlay |
FScrollBar |
Horizontal/vertical scrollbar with thumb customization |
FRichTextBox |
Rich text editor with styled border and lighting |
FTextBox |
Text input with password masking and styled border |
FGroupBox |
Container with styled frame and gradient background |
ZColorPicker |
HSV color wheel picker with brightness slider |
| Property | Type | Description |
|---|---|---|
Background |
bool |
Enable/disable background fill |
ColorBackground |
Color |
Background color |
Rounding |
bool |
Enable/disable corner rounding |
RoundingInt |
int |
Rounding percentage (0โ100) |
RGB |
bool |
Enable/disable RGB color cycling mode |
BackgroundPen |
bool |
Enable/disable border |
Background_WidthPen |
float |
Border width |
ColorBackground_Pen |
Color |
Border color |
Lighting |
bool |
Enable/disable lighting/shadow effect |
ColorLighting |
Color |
Lighting/shadow color |
LinearGradient_Background |
bool |
Enable/disable background gradient |
LinearGradientPen |
bool |
Enable/disable border gradient |
SmoothingMode |
SmoothingMode |
Graphics smoothing mode |
TextRenderingHint |
TextRenderingHint |
Text rendering quality |
| Component | Description |
|---|---|
FGlobal_RGB |
Enables synchronized global RGB mode for all FC_UI controls |
dotnet testTests are located in tests/WinForms.FC_UI.Tests/ and use xUnit. They cover engine utilities (HSV-to-RGB conversion, rounded rectangle generation, random helpers), and control property validation (defaults, bounds checking, events).
WinForms.FC_UI/
โโโ ๐ src/
โ โโโ ๐ Components/
โ โ โโโ ๐ FGlobal_RGB.cs # Global RGB component
โ โโโ ๐ Controls/
โ โ โโโ ๐ FButton.cs # Button control
โ โ โโโ ๐ FCheckBox.cs # CheckBox control
โ โ โโโ ๐ FRadioButton.cs # RadioButton control
โ โ โโโ ๐ FSwitchBox.cs # SwitchBox control
โ โ โโโ ๐ FProgressBar.cs # ProgressBar control
โ โ โโโ ๐ FScrollBar.cs # ScrollBar control
โ โ โโโ ๐ FRichTextBox.cs # RichTextBox control
โ โ โโโ ๐ FTextBox.cs # TextBox control
โ โ โโโ ๐ FGroupBox.cs # GroupBox control
โ โ โโโ ๐ ZColorPicker.cs # Color picker control
โ โโโ ๐ Engines/
โ โ โโโ ๐ DrawEngine.cs # Drawing utilities (rounded rects, HSV, shadow)
โ โ โโโ ๐ HelpEngine.cs # Helper utilities (fonts, graphics, random)
โ โโโ ๐ WinForms.FC_UI.csproj
โโโ ๐ tests/
โ โโโ ๐ WinForms.FC_UI.Tests/ # xUnit tests
โ โโโ ๐ DrawEngineTests.cs
โ โโโ ๐ HelpEngineTests.cs
โ โโโ ๐ Controls/ # Control tests
โ โโโ ๐ Components/ # Component tests
โ โโโ ๐ WinForms.FC_UI.Tests.csproj
โโโ ๐ examples/
โ โโโ ๐ WinForms.FC_UI.Example/ # Demo application
โ โโโ ๐ Program.cs
โ โโโ ๐ WinForms.FC_UI.Example.csproj
โโโ ๐ resources/ # Logo, demo GIFs
โโโ ๐ Directory.Build.props # Shared build settings
โโโ ๐ Directory.Packages.props # Central package management
โโโ ๐ WinForms.FC_UI.slnx # Solution file
โโโ ๐ LICENSE
โโโ ๐ README.md
Contributions are welcome! To get started:
- ๐ด Fork the repository
- ๐ฟ Create a feature branch (
git checkout -b feature/my-feature) - โ๏ธ Make your changes and add tests
- โ
Run
dotnet testto verify everything passes - ๐ฌ Open a Pull Request
Things to add or fix in future releases:
- FButton โ Add image/icon support so a picture can be placed inside the button.
- ZColorPicker โ Finish refactoring to remove the internal
PictureBoxdependency.
This project is licensed under the MIT License.



