Siticone Super Radial Gauge
The SiticoneSuperRadialGauge is a high-precision, highly customizable circular gauge designed for industrial, automotive, and dashboard applications.
It supports advanced features such as colored zones (e.g., "Warning", "Danger"), custom scale ticks, multiple needle styles, physics-based needle damping, and a variety of visual themes ranging from Minimal to Industrial.
Values & Range
Properties defining the gauge's measurement scale and current reading.
| Property | Type | Description & Usage Example |
|---|---|---|
Value |
double | gauge.Value = 65.5; The current reading of the gauge. Setting this triggers the needle animation towards the new position. |
MinimumValue |
double | gauge.MinimumValue = 0; The starting value of the scale. |
MaximumValue |
double | gauge.MaximumValue = 240; The ending value of the scale. |
Appearance & Design
Controls for the overall look, feel, and geometry of the gauge.
| Property | Type | Description & Usage Example |
|---|---|---|
DesignStyle |
RadialGaugeDesignStyle |
gauge.DesignStyle = RadialGaugeDesignStyle.Industrial;
Sets the overall theme. Options: Classic, Modern, Minimal, Industrial.
|
StartAngle |
float | gauge.StartAngle = 135f; The angle (in degrees) where the scale begins. 135° is typical for bottom-left start. |
SweepAngle |
float | gauge.SweepAngle = 270f; The total arc length of the scale in degrees. 270° creates a 3/4 circle. |
EnableGlassEffect |
bool | gauge.EnableGlassEffect = true; Adds a reflective gloss overlay to simulate a glass cover. |
EnableRim |
bool | gauge.EnableRim = true; Draws a metallic or colored bezel around the gauge. |
GaugeBackColor |
Color | gauge.GaugeBackColor = Color.WhiteSmoke; |
ScaleColor |
Color | gauge.ScaleColor = Color.DarkGray; |
Needle Configuration
Options to customize the indicator pointer's shape and behavior.
| Property | Type | Description & Usage Example |
|---|---|---|
NeedleStyle |
GaugeNeedleStyle |
gauge.NeedleStyle = GaugeNeedleStyle.Arrow;
Shape of the pointer. Options: Arrow, Line, Triangular, Diamond, Rounded.
|
NeedleColor |
Color | gauge.NeedleColor = Color.Red; The primary fill color of the needle. |
NeedleLength |
float | gauge.NeedleLength = 0.8f; Length of the needle relative to the scale radius (0.0 to 1.0). |
EnableNeedleShadow |
bool | gauge.EnableNeedleShadow = true; Draws a soft shadow behind the needle for depth. |
Scale & Ticks
Fine-tune the ruler marks and divisions on the gauge face.
| Property | Type | Description & Usage Example |
|---|---|---|
MajorTickCount |
int | gauge.MajorTickCount = 11; Total number of primary division marks (including start and end). |
MinorTickCount |
int | gauge.MinorTickCount = 4; Number of smaller ticks between each major tick. |
MajorTickStyle |
GaugeTickStyle |
gauge.MajorTickStyle = GaugeTickStyle.Line;
Shape of the major ticks. Options: Line, Dot, Rectangle, Triangle.
|
ScaleRadius |
float | gauge.ScaleRadius = 0.85f; Size of the scale relative to the control size (0.0 to 1.0). |
Text & Labels
Configuration for the gauge title, current value display, and scale numbers.
| Property | Type | Description & Usage Example |
|---|---|---|
TitleText |
string | gauge.TitleText = "RPM"; Main label displayed on the gauge face. |
ShowValue |
bool | gauge.ShowValue = true; Whether to display the numeric value in the center. |
ValueSuffix |
string | gauge.ValueSuffix = " mph"; Text appended to the numeric value. |
ShowLabels |
bool | gauge.ShowLabels = true; Toggles the numeric labels around the scale. |
Zones & Ranges
The Zones collection allows you to highlight specific ranges on the scale, such as a "Redline" on a tachometer.
// Define specific colored ranges on the gauge
private void SetupGaugeZones()
{
superGauge1.ClearZones();
// Safe Zone (Green)
superGauge1.AddZone("Safe", 0, 60, Color.LightGreen);
// Warning Zone (Yellow)
superGauge1.AddZone("Warning", 60, 85, Color.Orange);
// Critical Zone (Red)
superGauge1.AddZone("Danger", 85, 100, Color.Red);
// Enable rendering
superGauge1.EnableZones = true;
}
Public Methods
// Sets the value using a specific animation type, overriding the default property.
superGauge1.SetValueWithAnimation(80, RadialGaugeAnimationMode.Bounce);
// Adds a specific tick mark at a value, useful for "Target" or "Limit" markers.
// Parameters: Value, Label, IsMajorTick
superGauge1.AddCustomTick(55, "Limit", true);
superGauge1.EnableCustomTicks = true;
Events
// 1. ValueChanged Event
// Fires whenever the value property updates.
superGauge1.ValueChanged += (s, e) =>
{
Console.WriteLine($"Value: {e.NewValue}, Animated: {e.CurrentAnimatedValue}");
};
// 2. ZoneChanged Event
// Fires when the needle enters or exits a defined zone.
superGauge1.ZoneChanged += (s, e) =>
{
if (e.IsEntering)
Console.WriteLine($"Entered zone: {e.Zone.Name}");
};
// 3. MaximumReached Event
// Fires when the gauge hits the Max value.
superGauge1.MaximumReached += (s, e) =>
{
MessageBox.Show("Redline reached!");
};
Designer & Smart Tags
The control includes a rich Smart Tag menu for rapid configuration.
| Feature | Description |
|---|---|
Gauge Presets |
One-click setup for common use cases:
|
Quick Actions |
Set 50% / Max / Min: Quickly move the needle for testing. Scale Configuration: Presets for Linear, Semicircle, or Full Circle layouts. |
Detailed Usage Examples
Example 1: Automotive Tachometer
Creates a sport-style RPM gauge with a specific redline zone and bounce animation.
private void SetupTachometer()
{
gauge.DesignStyle = RadialGaugeDesignStyle.Modern;
gauge.TitleText = "x1000 RPM";
gauge.MaximumValue = 8;
gauge.ValueFormat = "0";
// Scale Config
gauge.StartAngle = 135;
gauge.SweepAngle = 270;
gauge.MajorTickCount = 9; // 0 to 8
// Redline Zone
gauge.ClearZones();
gauge.AddZone("Redline", 6.5, 8, Color.Red);
gauge.EnableZones = true;
// Physics
gauge.AnimationMode = RadialGaugeAnimationMode.Bounce;
gauge.AnimationSpeed = 0.15;
}
Example 2: Server Load Monitor
A minimal style gauge for dashboard monitoring, using color to indicate load severity.
private void SetupLoadGauge()
{
gauge.DesignStyle = RadialGaugeDesignStyle.Minimal;
gauge.TitleText = "CPU Load";
gauge.ValueSuffix = "%";
// Simplified visual
gauge.ShowLabels = false;
gauge.EnableRim = false;
gauge.NeedleStyle = GaugeNeedleStyle.Line;
// Dynamic Color Change
gauge.ValueChanged += (s, e) =>
{
if (e.NewValue > 90) gauge.NeedleColor = Color.Red;
else if (e.NewValue > 70) gauge.NeedleColor = Color.Orange;
else gauge.NeedleColor = Color.DodgerBlue;
};
}