Wer.Winforms.Toolkit 3.1.0

dotnet add package Wer.Winforms.Toolkit --version 3.1.0
                    
NuGet\Install-Package Wer.Winforms.Toolkit -Version 3.1.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Wer.Winforms.Toolkit" Version="3.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Wer.Winforms.Toolkit" Version="3.1.0" />
                    
Directory.Packages.props
<PackageReference Include="Wer.Winforms.Toolkit" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Wer.Winforms.Toolkit --version 3.1.0
                    
#r "nuget: Wer.Winforms.Toolkit, 3.1.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Wer.Winforms.Toolkit@3.1.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Wer.Winforms.Toolkit&version=3.1.0
                    
Install as a Cake Addin
#tool nuget:?package=Wer.Winforms.Toolkit&version=3.1.0
                    
Install as a Cake Tool

Wer.Winforms.Toolkit

Modern owner-drawn WinForms UI toolkit for .NET Framework 4.7.2. 40+ styled controls with consistent theming — rounded corners, clean typography, and modern visual design for business applications.

Installation

Install-Package Wer.Winforms.Toolkit

Controls

Buttons

Control Description
WerButtonPrimary Teal filled button
WerButtonSuccess Green filled button
WerButtonWarning Red filled button
WerButtonOrange Orange filled button
WerButtonOutlinedPrimary Teal outlined button
WerButtonOutlinedSuccess Green outlined button
WerButtonOutlinedWarning Red outlined button
WerButtonOutlinedOrange Orange outlined button

Form Fields

Control Description
WerTextField Single-line text input with label
WerCurrencyField Decimal currency input (Value → decimal)
WerIntegerField Integer input (Value → int)
WerPercentField Percentage input (Value → decimal)
WerDatePicker Styled date picker
WerTimePicker Styled time picker
WerPhoneField Phone number input
WerTelephoneField Telephone input
WerSearchField Search input with icon
WerComboBox Styled combo box dropdown
WerRichTextField Multi-line rich text input
WerCopyTextField Read-only field with copy button

Selectors

Control Description
WerDateRange Predefined date range dropdown (Past 7/30/60/90 days, etc.)
WerDateRangePicker Two-calendar from/to date picker
WerToggle On/off toggle switch
WerQuantitySelector [ − \| 0 \| + ] inline quantity stepper with min/max/step

Display

Control Description
WerLabel Styled label
WerHeading Page/section heading
WerLink Clickable link label
WerCheckbox Styled checkbox
WerRadioButton Styled radio button
WerStatusIndicator Colored status pill
WerDivider Horizontal rule divider
WerBanner Info/Positive/Negative/Notice banner
WerBadge Pill-shaped badge with tinted background
WerIcon Segoe MDL2 icon (70+ named constants via WerIcons)
WerCard Stat card with title, value, subtitle, accent bar

Layout

Control Description
WerGroupBox Styled group box with rounded border
WerEmptyGroupBox Group box without title
WerTabControl Styled tab control
WerTabPage Tab page for use with WerTabControl
Control Description
WerLeftNavMenu Left navigation panel with form hosting
WerMenuButton Navigation item for WerLeftNavMenu
WerTopNav Top navigation bar with avatar and logout

Data

Control Description
WerDataGrid Owner-drawn data grid with search, pagination, sort, tabs, and edit buttons

Feedback

Control Description
WerSnackbar Auto-dismiss toast notifications
WerMessageBox Modern styled modal message box
WerProgressBar Rounded progress bar with label
WerSpinner Animated loading arc

Usage Examples

Snackbar Toasts

WerSnackbar.Success(this, "Record saved successfully.");
WerSnackbar.Error(this, "Something went wrong.");
WerSnackbar.Warning(this, "Connection unstable.");
WerSnackbar.Info(this, "3 new messages.");

Message Box

WerMessageBox.Success.Show("Record saved.");
WerMessageBox.Error.Show("Something went wrong.", "Oops");

var result = WerMessageBox.Warning.Show("Delete this?", "Confirm", WerMessageButtons.YesNo);
if (result == DialogResult.Yes) { /* ... */ }

Data Grid

werDataGrid1.PrimaryKeyColumn = "Id";
werDataGrid1.ShowEditColumn = true;
werDataGrid1.FieldOptions = new[] { "Name", "Category", "Qty", "Price" };
werDataGrid1.TotalAmountColumn = "Price";
werDataGrid1.PageSize = 25;
werDataGrid1.DataSource = myList;

werDataGrid1.EditClicked += (s, args) =>
    MessageBox.Show("Edit: " + args.PrimaryKey);

// Keyboard row selection + SelectedRowId
werDataGrid1.SelectedRowChanged += (s, id) =>
    lblSelected.Text = id?.ToString();

// POS / full-list mode — show all rows, no pagination footer
werDataGrid1.ShowFooterPagination = false;

Quantity Selector

werQuantitySelector1.LabelText = "Qty";
werQuantitySelector1.Minimum   = 0;
werQuantitySelector1.Maximum   = 99;
werQuantitySelector1.Step      = 1;
werQuantitySelector1.Value     = 1;

werQuantitySelector1.ValueChanged += (s, e) =>
    lblQty.Text = werQuantitySelector1.Value.ToString();
werLeftNavMenu1.ContentPanel = panel1;
werLeftNavMenu1.LogoText = "MyApp";
werTopNav1.UserName = "Jane Cruz";
werTopNav1.LogoutClicked += (s, e) => Application.Exit();

// In menu button click handler
werLeftNavMenu1.ShowForm<UsersForm>("User Management");

Numeric Fields

decimal amount = werCurrencyField1.Value;  // decimal, default 0
int qty        = werIntegerField1.Value;   // int, default 0
decimal pct    = werPercentField1.Value;   // decimal, default 0

Card

werCard1.Title = "Total Revenue";
werCard1.Value = "$125,000.00";
werCard1.Subtitle = "Last 30 days";
werCard1.AccentColor = WerTheme.SuccessColor;

Toggle

werToggle1.Text = "Enable notifications";
werToggle1.Checked = true;
werToggle1.CheckedChanged += (s, e) => UpdateSetting(werToggle1.Checked);

Progress & Spinner

werProgressBar1.Value = 75;
werProgressBar1.BarColor = WerTheme.PrimaryColor;
werProgressBar1.ShowLabel = true;   // shows "75%"

werSpinner1.IsSpinning = true;

Theme

All controls use WerTheme for consistent styling:

Token Value Usage
PrimaryColor RGB(12, 124, 146) — Teal Buttons, focus borders, accents
SuccessColor RGB(40, 167, 69) — Green Success buttons
WarningColor RGB(179, 58, 58) — Red Warning buttons, errors
OrangeColor RGB(230, 126, 34) — Orange Orange buttons
TextColor RGB(33, 37, 41) — Dark navy All body text
FontFamily "Segoe UI" All controls
InputBorderRadius 8px Rounded corners

Requirements

  • .NET Framework 4.7.2
  • Windows 10 / 11 (uses Segoe UI and Segoe MDL2 Assets fonts)

License

MIT

Product Compatible and additional computed target framework versions.
.NET Framework net472 is compatible.  net48 was computed.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.7.2

    • No dependencies.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.1.0 0 9/30/2026
2.10.1 78 9/23/2026
2.8.0 91 9/15/2026
2.7.0 87 9/15/2026

v1.1.0 — Added WerSnackbar, WerMessageBox, WerSpinner, WerProgressBar, WerBadge, WerCard, WerToggle, WerTimePicker, WerCopyTextField, WerDateRangePicker, WerIcon, WerDataGrid (owner-drawn with search/pagination/tabs/sort/edit), WerLeftNavMenu, WerMenuButton, WerTopNav, WerForm. Memory leak fixes on all timer-based controls.