BazthalLib 1.1.3
dotnet add package BazthalLib --version 1.1.3
NuGet\Install-Package BazthalLib -Version 1.1.3
<PackageReference Include="BazthalLib" Version="1.1.3" />
<PackageVersion Include="BazthalLib" Version="1.1.3" />
<PackageReference Include="BazthalLib" />
paket add BazthalLib --version 1.1.3
#r "nuget: BazthalLib, 1.1.3"
#:package BazthalLib@1.1.3
#addin nuget:?package=BazthalLib&version=1.1.3
#tool nuget:?package=BazthalLib&version=1.1.3
BazthalLib UI Library - README
BazthalLib
is a custom C# UI framework designed for themable Windows Forms apps.
All components follow a unified, configurable color system with reusable styling.
Library was built alongside projects using it so everything was added to fill a need
Key Features
Unified Theme Engine
- Centralized
ThemeColors.cs
defines all color roles. - Live propagation of theme updates to all registered controls.
- JSON support via
ThemeColorsJsonConverter.cs
for saving/loading themes.
Themable Controls
A full suite of UI elements with built-in theme awareness:
Category Included Controls Buttons ThemableButton, ThemableToolStripButton, ThemableRadioButton Inputs ThemableTextBox, ThemableComboBox, ThemableCheckBox, ThemableNumericUpDown Lists ThemableListBox, ThemableOptionListBox Panels & Grouping ThemablePanel, ThemableGroupBox, ThemableTabControlBase, ThemableTabControlHeader ToolStrips ThemableToolStrip, ThemableStatusStrip, ThemableToolStripTextBox, ThemableToolStripProgressBar, etc. Misc ThemableProgressBar, ThemableTrackBar, ThemableColorPickerDialog, ThemableProcessingDialog, ThemableMessageBox
All components implement or inherit from IThemableControl
.
Tinted Image Rendering
TintedImageRenderer.cs
enables dynamic icon tinting based on accent or foreground color.- Integrates with buttons for adaptive shape, focus borders, and scaling tied to image layout.
Utility Classes
- DebugUtils.cs Debug logging utilities
- MouseHook.cs Global mouse input handling
- NativeMethods.cs P/Invoke support for Win32 APIs
- EyedropperOverlay.cs Live screen color picker with multi-monitor support
Smart Design Patterns
NotifyingItemCollection.cs
: A custom observable collection with change trackingThemeManager
: Central orchestrator of theming logic and control registration
Ideal For
- Custom-themed Windows Forms applications
- Stream overlays, dashboards, and utilities
- Apps needing runtime theme switching or user-defined color customization
Project Structure
Folder Description Controls All themable UI components Configuration Theme persistence and JSON handling UI Theming engine and rendering tools Systems File handling, execution, networking logic Resources Assets for Color Picker and Theme Selector components
Color Picker Preview
- Compact and expanded versions of the built-in color picker
Compacted | Expanded |
---|---|
![]() |
![]() |
Sample App: MP3PlayerV2
- This MP3 player UI was built entirely with BazthalLib:
Light / Dark | Theme | HotPink Theme |
---|---|---|
![]() |
![]() |
![]() |
Settings | Processing Dialog | |
![]() |
![]() |
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0-windows7.0 is compatible. net10.0-windows was computed. |
-
net9.0-windows7.0
- Microsoft.CSharp (>= 4.7.0)
- System.Data.DataSetExtensions (>= 4.5.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.