SpeedoMeter.WinForms 1.1.0

dotnet add package SpeedoMeter.WinForms --version 1.1.0
                    
NuGet\Install-Package SpeedoMeter.WinForms -Version 1.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="SpeedoMeter.WinForms" Version="1.1.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="SpeedoMeter.WinForms" Version="1.1.0" />
                    
Directory.Packages.props
<PackageReference Include="SpeedoMeter.WinForms" />
                    
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 SpeedoMeter.WinForms --version 1.1.0
                    
#r "nuget: SpeedoMeter.WinForms, 1.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 SpeedoMeter.WinForms@1.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=SpeedoMeter.WinForms&version=1.1.0
                    
Install as a Cake Addin
#tool nuget:?package=SpeedoMeter.WinForms&version=1.1.0
                    
Install as a Cake Tool

đŸŽī¸ SpeedoMeter for Windows Forms

NuGet Version NuGet Downloads License

A professional-grade, hardware-accelerated Radial Gauge & Speedometer UI Control library for Windows Forms. Perfect for automotive dashboards, SCADA setups, telemetry tracking, and real-time metric visualization.


✨ Key Features

  • 🚀 Zero Dependencies: Pure C# implementation utilizing optimized native GDI+ rendering.
  • ⚡ Hardware Accelerated: Built-in double-buffering protects against frame tearing and flickering.
  • 🎨 25+ Needle Presets: Includes vintage pointers, modern sleek arrows, and glowing sci-fi indicators.
  • đŸšĻ Multi-Phase Status Zones: Easy parameterization for safe, warning, and critical range limits.
  • đŸ› ī¸ Full Designer Integration: Seamless integration into the Visual Studio Property Grid.

đŸ“Ļ Installation

Install the package via your preferred development terminal tool:

.NET CLI

dotnet add package SpeedoMeter.WinForms

Package Manager

Install-Package SpeedoMeter.WinForms

PackageReference

<PackageReference Include="SpeedoMeter.WinForms" Version="1.1.0" />

🚀 Quick Start Guide

1. Visual Studio Designer

  1. Install the NuGet package in your target project environment.
  2. Rebuild your workspace structure (Ctrl + Shift + B).
  3. Drag the SpeedometerControl tool directly out of your Visual Studio Toolbox onto your form.

2. Programmatic Setup Example

using System.Drawing;
using System.Windows.Forms;
using SpeedoMeter;

public partial class MainForm : Form
{
    public MainForm()
    {
        InitializeComponent();

        var gauge = new SpeedometerControl
        {
            Location = new Point(20, 20),
            Size = new Size(300, 300),
            
            // Value Range Definition
            MinValue = 0f,
            MaxValue = 220f,
            Value = 65f,
            UnitLabel = "km/h",
            
            // Needle Matrix Customization
            NeedleStyle = NeedleStyle.ModernSleek,
            NeedleColor1 = Color.Red,
            NeedleColor2 = Color.DarkRed,
            
            // Zone Guard Configuration
            ZoneGreenEndValue = 100f,
            ZoneRedStartValue = 160f
        };

        this.Controls.Add(gauge);
    }
}

🎨 Needle Style Portfolio (NeedleStyle)

Change the layout design of your application gauge instantly by applying one of these supported enum values:

  • đŸ›°ī¸ Modern collection: ModernIndicator, ModernThin, ModernBlocky, ModernSleek, ModernCutout, ModernDualLine
  • đŸ›Šī¸ Classic & Aviation: ClassicTapered, ClassicWide, VintageAviator, VintageThinWithTail, VintageArtDeco, VintageCrescentTail
  • 🏹 Tactical & Sci-Fi: Arrowhead, Broadhead, CrossbowBolt, Harpoon, SciFiArrow, SciFiDataSpike, EnergyBlade
  • 🔱 Ornate variants: OrnateDiamond, OrnateSpearTip, OrnateSword, OrnateFleurDeLis, CompassNorth, AnchorTail, SimplePin

âš™ī¸ Core Configuration Properties

🧩 1. Value Tracking Mechanics

  • Value (float): The current target index point on the display.
  • MinValue (float): The bottom scale floor baseline.
  • MaxValue (float): The upper structural ceiling endpoint.
  • UnitLabel (string): Text overlay directly underneath the numeric metrics (e.g., "km/h").

📐 2. Geometric Layout Parameters

  • ScaleStartAngle (float): Mapping origin offset angle expressed in degrees (Default: 135).
  • ScaleSweepAngle (float): Total length span of the circular tracking scale track (Default: 270).
  • GaugePadding (int): Outer margin buffer separating the control bounding frame from layout assets.
  • ValuePosition (PointF): Focused alignment parameters specifying coordinates for text strings.

đŸšĨ 3. Threshold Range Indicators

  • ZoneGreenEndValue (float): Target split boundary marking where the green zone gives way to yellow.
  • ZoneRedStartValue (float): Scale tracking milestone where warnings elevate into red alerts.
  • ZoneGreenColor (Color): Hex or system paint value applied inside your application's safe operational ranges.
  • ZoneRedColor (Color): Accent palette bound directly to emergency display status tracking zones.

đŸ—ī¸ Internal Paint Sequence Pipeline

The library relies on a property-drawn layout engine. The background script sequentially computes your layouts from back-to-front within an isolated OnPaint routine loop:

  1. DrawOuterShadow() - Drops an ambient background alpha layer.
  2. DrawFace() - Generates your base underlying gradient fill.
  3. DrawBezel() - Renders a distinct 3D exterior containment frame.
  4. DrawInnerBezelShadow() - Distributes edge shade parameters for visual immersion.
  5. DrawZones() - Computes safe vs hazardous sector arcs across your track map.
  6. DrawTicks() - Places reference step marks along with scale strings.
  7. DrawNeedle() - Applies your active layout calculations for tracking lines.
  8. DrawValueLabel() - Centers high-contrast data numbers underneath indicators.
  9. DrawGlassEffect() - Places a distinct ambient light reflect map over front faces.

đŸŽ¯ Platform Compatibility Support

  • Framework Architectures: .NET Framework 4.6.2, 4.7, 4.8+
  • Modern Environments: .NET 6.0-windows, .NET 8.0-windows (and future frameworks)

📸 Preview

SpeedoMeter Demo


Designed and built with absolute structural focus by the GRIT Engineering Team (Growth, Resilience, Intensity, Tenacity).

Product Compatible and additional computed target framework versions.
.NET net6.0-windows7.0 is compatible.  net7.0-windows was computed.  net8.0-windows was computed.  net8.0-windows7.0 is compatible.  net9.0-windows was computed.  net10.0-windows was computed. 
.NET Framework net462 is compatible.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 is compatible.  net481 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETFramework 4.6.2

    • No dependencies.
  • .NETFramework 4.8

    • No dependencies.
  • net6.0-windows7.0

    • No dependencies.
  • net8.0-windows7.0

    • 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
1.1.0 96 8/31/2026
1.0.0 101 8/30/2026

- Added multi-targeting support for .NET Framework 4.6.2 (net462).
     - Reformatted codebase to standard Allman/C# conventions for improved maintainability.
     - Updated NuGet package metadata and tags.