Implementing Gauges
When to Use This Skill
Use this skill when the user needs to implement Syncfusion Gauge controls in a Windows Forms application. This skill covers three gauge types for different visualization needs:
RadialGauge Use Cases
- Speedometers and tachometers - Vehicle instrumentation, RPM displays
- Temperature gauges - HVAC controls, system monitoring, weather displays
- Pressure gauges - Industrial monitoring, tire pressure, hydraulic systems
- Progress indicators - Circular progress for loading, completion percentage
- KPI dashboards - Performance metrics with color-coded ranges
- Dial controls - Volume, brightness, or any rotary control visualization
- Compass displays - Navigation, orientation indicators
- Clock faces - Analog time displays with custom styling
LinearGauge Use Cases
- Progress bars - Task completion, download progress, loading status
- Level indicators - Battery level, fuel gauge, volume meters
- Slider visualizations - Temperature sliders, adjustment controls
- Horizontal meters - Audio levels, signal strength, capacity indicators
- Vertical meters - Building height indicators, elevator position
- Thermometer displays - Temperature scales, medical thermometers
- Timeline indicators - Project timelines, milestone tracking
DigitalGauge Use Cases
- Digital clocks - Time displays, countdown timers, stopwatches
- Counters - Visitor counters, production counters, score displays
- Alphanumeric status - System codes, product IDs, status messages
- LED displays - Retro-style indicators, industrial displays
- Price displays - Gas station prices, retail pricing
- Measurement readouts - Digital multimeters, sensor readings
When NOT to use: For simple text displays without gauge visualization, use standard Label or TextBox controls. For charts and graphs, use Chart controls.
Component Overview
Syncfusion provides three gauge controls for data visualization in Windows Forms:
1. RadialGauge
Visualizes values on a circular or arc scale with customizable needles, ranges, and frames.
Key Features:
- 4 frame types: FullCircle, HalfCircle, QuarterCircle, Fill
- Multiple needles support
- Color-coded ranges for visual thresholds
- Customizable scales, ticks, and labels
- Gradient backgrounds and styling
- Custom needle styles (Default, Advanced, Pointer)
2. LinearGauge
Visualizes values on a linear scale (horizontal or vertical) with pointer indicators.
Key Features:
- Horizontal and vertical orientations
- Pointer placement (Top, Center, Bottom)
- Color-coded ranges
- Major and minor tick marks
- Value indicator bars
- Gradient styling
3. DigitalGauge
Displays alphanumeric characters in LED/digital format.
Key Features:
- 4 character types: DotMatrix, SevenSegment, FourteenSegment, SixteenSegment
- Configurable character count
- Segment spacing control
- Invisible segment display option
- Rounded corners support
All gauges support:
- Visual themes (9 built-in + custom)
- Data binding for real-time updates
- Custom renderers for complete visual control
- Professional styling options
Documentation and Navigation Guide
Installation and Setup
📄 Read: references/installation-and-setup.md
When user needs to set up gauge controls for the first time. Covers:
- Assembly references (Syncfusion.Gauge.Windows.dll, Syncfusion.Shared.Base.dll)
- NuGet package installation
- Namespace imports (Syncfusion.Windows.Forms.Gauge)
- Framework support (.NET 4.5+, .NET 6.0-8.0)
- Deployment requirements
- Toolbox configuration
- Sample browser location
RadialGauge (Circular Gauges)
📄 Read: references/radial-gauge.md
When user needs circular, arc, or dial-style gauges. Covers:
- Frame types (FullCircle, HalfCircle, QuarterCircle, Fill)
- Designer and code-based setup
- Scales and labels (placement, orientation, colors)
- Ticks (major/minor configuration, heights, colors)
- Needles (single and multiple, styles, colors)
- Ranges (color-coded value ranges with start/end)
- Scaling divisions (MajorDifference, MinorDifference)
- StartAngle and SweepAngle customization
- Frame appearance (gradients, arc colors)
- Label customization with DrawLabel event
- Performance optimization tips
LinearGauge (Bar/Slider Gauges)
📄 Read: references/linear-gauge.md
When user needs horizontal or vertical bar-style gauges. Covers:
- Frame types (Horizontal, Vertical)
- Designer and code-based setup
- Scales and label configuration
- Tick marks (major/minor)
- Pointer placement options
- Needle display and styling
- Ranges (LinearRange with colors)
- Value indicator positioning
- Frame appearance customization
- Complete orientation examples
DigitalGauge (LED Display)
📄 Read: references/digital-gauge.md
When user needs LED-style alphanumeric displays. Covers:
- Character types (DotMatrix, SevenSegment, FourteenSegment, SixteenSegment)
- Designer and code-based setup
- Character count limiting
- Segment spacing configuration
- ShowInvisibleSegments property
- RoundCornerRadius for rounded edges
- Value property for string display
- Frame customization
- Examples for each character type
Visual Themes and Styling
📄 Read: references/visual-themes.md
When user wants to apply professional themes or custom styling. Covers:
- VisualStyle property (applies to all 3 gauge types)
- Built-in themes (Blue, Black, Silver, Metro, Office2016 variants)
- Custom theme creation (ThemeBrush collections)
- Color customization properties
- Design-time theme setup
- Theme-specific examples for each gauge type
- Consistent application-wide theming
Custom Renderers
📄 Read: references/custom-renderers.md
When user needs complete control over gauge rendering and appearance. Covers:
- IRadialGaugeRenderer interface
- ILinearGaugeRenderer interface
- Creating custom renderer classes
- DrawOuterArc, DrawNeedle, DrawLabel, DrawRanges methods
- Renderer property assignment
- Advanced customization scenarios
- Complete custom renderer examples
Data Binding
📄 Read: references/data-binding.md
When user needs real-time data updates or database-driven gauges. Covers:
- DataSource property configuration
- DisplayMember (column mapping)
- DisplayRecordIndex (row mapping)
- High-frequency data updates
- Real-time monitoring scenarios
- Performance considerations
- Complete binding examples for all gauge types
Quick Start Examples
RadialGauge: Speedometer
using Syncfusion.Windows.Forms.Gauge;
// Create RadialGauge
RadialGauge speedometer = new RadialGauge();
speedometer.Size = new Size(300, 300);
speedometer.Location = new Point(20, 20);
// Configure gauge properties
speedometer.MinimumValue = 0;
speedometer.MaximumValue = 200;
speedometer.MajorDifference = 20;
speedometer.MinorDifference = 5;
speedometer.Value = 60;
// Set frame type
speedometer.FrameType = FrameType.HalfCircle;
// Configure appearance
speedometer.ShowNeedle = true;
speedometer.NeedleStyle = NeedleStyle.Advanced;
speedometer.GaugeLabel = "Speed (MPH)";
// Add color-coded ranges
Range range1 = new Range();
range1.StartValue = 0;
range1.EndValue = 80;
range1.Color = Color.Green;
range1.Height = 10;
speedometer.Ranges.Add(range1);
Range range2 = new Range();
range2.StartValue = 80;
range2.EndValue = 150;
range2.Color = Color.Yellow;
range2.Height = 10;
speedometer.Ranges.Add(range2);
Range range3 = new Range();
range3.StartValue = 150;
range3.EndValue = 200;
range3.Color = Color.Red;
range3.Height = 10;
speedometer.Ranges.Add(range3);
// Add to form
this.Controls.Add(speedometer);
LinearGauge: Battery Level
using Syncfusion.Windows.Forms.Gauge;
// Create LinearGauge
LinearGauge batteryLevel = new LinearGauge();
batteryLevel.Size = new Size(300, 125);
batteryLevel.Location = new Point(20, 20);
// Set horizontal orientation
batteryLevel.LinearFrameType = LinearFrameType.Horizontal;
// Configure gauge properties
batteryLevel.MinimumValue = 0;
batteryLevel.MaximumValue = 100;
batteryLevel.MajorDifference = 20;
batteryLevel.MinorTickCount = 3;
batteryLevel.Value = 75;
// Configure appearance
batteryLevel.ShowNeedle = true;
batteryLevel.PointerPlacement = Placement.Center;
// Add color-coded ranges
LinearRange lowRange = new LinearRange();
lowRange.StartValue = 0;
lowRange.EndValue = 20;
lowRange.Color = Color.Red;
lowRange.Height = 8;
batteryLevel.Ranges.Add(lowRange);
LinearRange normalRange = new LinearRange();
normalRange.StartValue = 20;
normalRange.EndValue = 80;
normalRange.Color = Color.Yellow;
normalRange.Height = 8;
batteryLevel.Ranges.Add(normalRange);
LinearRange highRange = new LinearRange();
highRange.StartValue = 80;
highRange.EndValue = 100;
highRange.Color = Color.Green;
highRange.Height = 8;
batteryLevel.Ranges.Add(highRange);
// Add to form
this.Controls.Add(batteryLevel);
DigitalGauge: LED Clock
using Syncfusion.Windows.Forms.Gauge;
// Create DigitalGauge
DigitalGauge digitalClock = new DigitalGauge();
digitalClock.Size = new Size(250, 100);
digitalClock.Location = new Point(20, 20);
// Configure character display
digitalClock.CharacterType = CharacterType.SevenSegment;
digitalClock.CharacterCount = 8;
digitalClock.SegmentSpacing = 2.0f;
// Set initial value
digitalClock.Value = DateTime.Now.ToString("HH:mm:ss");
// Configure appearance
digitalClock.ForeColor = Color.Red;
digitalClock.ShowInvisibleSegments = true;
// Add timer to update clock
Timer clockTimer = new Timer();
clockTimer.Interval = 1000; // 1 second
clockTimer.Tick += (s, e) => {
digitalClock.Value = DateTime.Now.ToString("HH:mm:ss");
};
clockTimer.Start();
// Add to form
this.Controls.Add(digitalClock);
Common Patterns
Pattern 1: Dashboard with Multiple Gauges
// Create dashboard layout
FlowLayoutPanel dashboard = new FlowLayoutPanel();
dashboard.Dock = DockStyle.Fill;
// Temperature gauge (RadialGauge)
RadialGauge tempGauge = new RadialGauge();
tempGauge.MinimumValue = -20;
tempGauge.MaximumValue = 120;
tempGauge.Value = 72;
tempGauge.GaugeLabel = "°F";
tempGauge.FrameType = FrameType.HalfCircle;
dashboard.Controls.Add(tempGauge);
// Fuel level (LinearGauge)
LinearGauge fuelGauge = new LinearGauge();
fuelGauge.LinearFrameType = LinearFrameType.Vertical;
fuelGauge.MinimumValue = 0;
fuelGauge.MaximumValue = 100;
fuelGauge.Value = 45;
dashboard.Controls.Add(fuelGauge);
// Status counter (DigitalGauge)
DigitalGauge statusCounter = new DigitalGauge();
statusCounter.CharacterType = CharacterType.SevenSegment;
statusCounter.Value = "1234";
dashboard.Controls.Add(statusCounter);
this.Controls.Add(dashboard);
Pattern 2: Data-Bound Real-Time Gauge
// Setup data source
DataTable sensorData = new DataTable();
sensorData.Columns.Add("SensorValue", typeof(float));
sensorData.Rows.Add(0);
// Create and bind gauge
RadialGauge sensorGauge = new RadialGauge();
sensorGauge.DataSource = sensorData;
sensorGauge.DisplayMember = "SensorValue";
sensorGauge.DisplayRecordIndex = 0;
// Timer to simulate sensor updates
Timer dataTimer = new Timer();
dataTimer.Interval = 100; // 10 updates per second
dataTimer.Tick += (s, e) => {
// Update data source (gauge updates automatically)
sensorData.Rows[0]["SensorValue"] = GetSensorReading();
};
dataTimer.Start();
Pattern 3: Themed Gauge Set
// Apply consistent theme to all gauges
void ApplyTheme(Control.ControlCollection controls, ThemeStyle theme)
{
foreach (Control control in controls)
{
if (control is RadialGauge radial)
radial.VisualStyle = theme;
else if (control is LinearGauge linear)
linear.VisualStyle = theme;
else if (control is DigitalGauge digital)
digital.VisualStyle = theme;
if (control.HasChildren)
ApplyTheme(control.Controls, theme);
}
}
// Usage
ApplyTheme(this.Controls, ThemeStyle.Office2016Colorful);
Gauge Type Selection Guide
| Need |
Use This Gauge |
Why |
| Circular display (speedometer style) |
RadialGauge |
Natural for rotary values, intuitive needle movement |
| Arc/partial circle |
RadialGauge (HalfCircle/QuarterCircle) |
Space-efficient, modern dashboard look |
| Horizontal progress bar |
LinearGauge (Horizontal) |
Clear left-to-right progression |
| Vertical level indicator |
LinearGauge (Vertical) |
Natural for height/depth/level visualization |
| Time display (LED style) |
DigitalGauge (SevenSegment) |
Classic digital clock appearance |
| Alphanumeric status code |
DigitalGauge (FourteenSegment/SixteenSegment) |
Supports letters and numbers |
| Multiple needles on one dial |
RadialGauge (EnableCustomNeedles) |
Compare multiple values on same scale |
| Fill-based progress indicator |
RadialGauge (FrameType.Fill) |
Visual fill from start to current value |
Key Properties Comparison
Common to All Gauges
| Property |
Type |
Description |
Value |
float (Radial/Linear) / string (Digital) |
Current displayed value |
MinimumValue |
float |
Minimum scale value (Radial/Linear only) |
MaximumValue |
float |
Maximum scale value (Radial/Linear only) |
DataSource |
object |
Data source for binding |
DisplayMember |
string |
Column name for value binding |
DisplayRecordIndex |
int |
Row index for value binding |
RadialGauge Specific
| Property |
Type |
Description |
FrameType |
FrameType |
FullCircle, HalfCircle, QuarterCircle, Fill |
StartAngle |
int |
Starting angle of arc (degrees) |
SweepAngle |
int |
Arc span length (degrees) |
ShowNeedle |
bool |
Display pointer needle |
VisualStyle |
ThemeStyle |
Theme: Blue, Black, Silver, Metro, Office2016*, Custom |
NeedleStyle |
NeedleStyle |
Default, Advanced, Pointer |
EnableCustomNeedles |
bool |
Allow multiple needles |
Ranges |
RangeCollection |
Color-coded value ranges |
MajorDifference |
float |
Spacing between major ticks |
MinorDifference |
float |
Spacing between minor ticks |
LinearGauge Specific
| Property |
Type |
Description |
LinearFrameType |
LinearFrameType |
Horizontal or Vertical |
PointerPlacement |
Placement |
Top, Center, Bottom |
ShowNeedle |
bool |
Display pointer |
VisualStyle |
ThemeStyle |
Theme: Blue, Black, Silver, Metro, Office2016*, Custom |
Ranges |
LinearRangeCollection |
Color-coded value ranges |
MajorDifference |
float |
Spacing between major ticks |
MinorTickCount |
int |
Number of minor ticks between majors |
DigitalGauge Specific
| Property |
Type |
Description |
Value |
string |
Text to display |
CharacterType |
CharacterType |
DotMatrix, SevenSegment, FourteenSegment, SixteenSegment |
CharacterCount |
int |
Number of characters to display |
SegmentSpacing |
float |
Spacing between characters |
ShowInvisibleSegments |
bool |
Show inactive segments |
RoundCornerRadius |
int |
Corner rounding radius |
Note: DigitalGauge does not support the VisualStyle property. Use ForeColor and BackColor for styling instead. |
|
|
Common Use Cases
1. Industrial Dashboard
Scenario: Monitor multiple sensors (pressure, temperature, RPM)
Solution: Multiple RadialGauges with color-coded ranges and real-time data binding
2. Progress Indicator
Scenario: Show task completion percentage
Solution: LinearGauge (Horizontal) or RadialGauge (Fill type) with 0-100 range
3. Digital Clock Display
Scenario: Display current time in LED format
Solution: DigitalGauge with SevenSegment character type, timer for updates
4. Vehicle Instrument Cluster
Scenario: Speedometer, tachometer, fuel gauge
Solution: RadialGauges (HalfCircle for speed/RPM), LinearGauge (Vertical for fuel)
5. System Monitor
Scenario: CPU usage, memory, network speed
Solution: Mix of RadialGauges (percentage dials) and DigitalGauges (numeric readouts)
6. Temperature Control
Scenario: Thermostat with visual temperature display
Solution: RadialGauge (FullCircle) with color ranges (blue=cold, yellow=moderate, red=hot)
Best Practices
- Choose appropriate gauge type - RadialGauge for rotary values, LinearGauge for linear progression, DigitalGauge for alphanumeric
- Use color-coded ranges - Visual thresholds improve readability (green=good, yellow=warning, red=critical)
- Set meaningful scales - Configure Min/Max and MajorDifference to match your data range
- Apply consistent themes - Use same VisualStyle across all gauges in application
- Optimize real-time updates - Use data binding for frequent updates instead of manual Value setting
- Label your gauges - Set GaugeLabel property to clarify what's being measured
- Consider performance - For many gauges, use SuspendLayout/ResumeLayout when configuring multiple properties
- Test different frame types - HalfCircle and QuarterCircle save space while remaining readable
1---2name: syncfusion-winforms-radial-gauge3description: Guide for implementing Syncfusion Gauge controls in Windows Forms applications. Use when creating data visualization gauges such as RadialGauge for circular displays (speedometers, temperature dials), LinearGauge for horizontal/vertical bars and progress indicators, or DigitalGauge for LED-style alphanumeric displays. Covers dashboard gauges, instrument panels, real-time monitoring, and KPI displays with needles, ranges, and scales.4---56# Implementing Gauges78## When to Use This Skill910Use this skill when the user needs to implement Syncfusion **Gauge controls** in a Windows Forms application. This skill covers three gauge types for different visualization needs:1112### RadialGauge Use Cases131. **Speedometers and tachometers** - Vehicle instrumentation, RPM displays142. **Temperature gauges** - HVAC controls, system monitoring, weather displays153. **Pressure gauges** - Industrial monitoring, tire pressure, hydraulic systems164. **Progress indicators** - Circular progress for loading, completion percentage175. **KPI dashboards** - Performance metrics with color-coded ranges186. **Dial controls** - Volume, brightness, or any rotary control visualization197. **Compass displays** - Navigation, orientation indicators208. **Clock faces** - Analog time displays with custom styling2122### LinearGauge Use Cases231. **Progress bars** - Task completion, download progress, loading status242. **Level indicators** - Battery level, fuel gauge, volume meters253. **Slider visualizations** - Temperature sliders, adjustment controls264. **Horizontal meters** - Audio levels, signal strength, capacity indicators275. **Vertical meters** - Building height indicators, elevator position286. **Thermometer displays** - Temperature scales, medical thermometers297. **Timeline indicators** - Project timelines, milestone tracking3031### DigitalGauge Use Cases321. **Digital clocks** - Time displays, countdown timers, stopwatches332. **Counters** - Visitor counters, production counters, score displays343. **Alphanumeric status** - System codes, product IDs, status messages354. **LED displays** - Retro-style indicators, industrial displays365. **Price displays** - Gas station prices, retail pricing376. **Measurement readouts** - Digital multimeters, sensor readings3839**When NOT to use:** For simple text displays without gauge visualization, use standard Label or TextBox controls. For charts and graphs, use Chart controls.4041## Component Overview4243Syncfusion provides **three gauge controls** for data visualization in Windows Forms:4445### 1. RadialGauge46Visualizes values on a **circular or arc scale** with customizable needles, ranges, and frames.4748**Key Features:**49- 4 frame types: FullCircle, HalfCircle, QuarterCircle, Fill50- Multiple needles support51- Color-coded ranges for visual thresholds52- Customizable scales, ticks, and labels53- Gradient backgrounds and styling54- Custom needle styles (Default, Advanced, Pointer)5556### 2. LinearGauge57Visualizes values on a **linear scale** (horizontal or vertical) with pointer indicators.5859**Key Features:**60- Horizontal and vertical orientations61- Pointer placement (Top, Center, Bottom)62- Color-coded ranges63- Major and minor tick marks64- Value indicator bars65- Gradient styling6667### 3. DigitalGauge68Displays **alphanumeric characters** in LED/digital format.6970**Key Features:**71- 4 character types: DotMatrix, SevenSegment, FourteenSegment, SixteenSegment72- Configurable character count73- Segment spacing control74- Invisible segment display option75- Rounded corners support7677**All gauges support:**78- Visual themes (9 built-in + custom)79- Data binding for real-time updates80- Custom renderers for complete visual control81- Professional styling options8283## Documentation and Navigation Guide8485### Installation and Setup86📄 **Read:** [references/installation-and-setup.md](references/installation-and-setup.md)8788When user needs to set up gauge controls for the first time. Covers:89- Assembly references (Syncfusion.Gauge.Windows.dll, Syncfusion.Shared.Base.dll)90- NuGet package installation91- Namespace imports (Syncfusion.Windows.Forms.Gauge)92- Framework support (.NET 4.5+, .NET 6.0-8.0)93- Deployment requirements94- Toolbox configuration95- Sample browser location9697### RadialGauge (Circular Gauges)98📄 **Read:** [references/radial-gauge.md](references/radial-gauge.md)99100When user needs circular, arc, or dial-style gauges. Covers:101- Frame types (FullCircle, HalfCircle, QuarterCircle, Fill)102- Designer and code-based setup103- Scales and labels (placement, orientation, colors)104- Ticks (major/minor configuration, heights, colors)105- Needles (single and multiple, styles, colors)106- Ranges (color-coded value ranges with start/end)107- Scaling divisions (MajorDifference, MinorDifference)108- StartAngle and SweepAngle customization109- Frame appearance (gradients, arc colors)110- Label customization with DrawLabel event111- Performance optimization tips112113### LinearGauge (Bar/Slider Gauges)114📄 **Read:** [references/linear-gauge.md](references/linear-gauge.md)115116When user needs horizontal or vertical bar-style gauges. Covers:117- Frame types (Horizontal, Vertical)118- Designer and code-based setup119- Scales and label configuration120- Tick marks (major/minor)121- Pointer placement options122- Needle display and styling123- Ranges (LinearRange with colors)124- Value indicator positioning125- Frame appearance customization126- Complete orientation examples127128### DigitalGauge (LED Display)129📄 **Read:** [references/digital-gauge.md](references/digital-gauge.md)130131When user needs LED-style alphanumeric displays. Covers:132- Character types (DotMatrix, SevenSegment, FourteenSegment, SixteenSegment)133- Designer and code-based setup134- Character count limiting135- Segment spacing configuration136- ShowInvisibleSegments property137- RoundCornerRadius for rounded edges138- Value property for string display139- Frame customization140- Examples for each character type141142### Visual Themes and Styling143📄 **Read:** [references/visual-themes.md](references/visual-themes.md)144145When user wants to apply professional themes or custom styling. Covers:146- VisualStyle property (applies to all 3 gauge types)147- Built-in themes (Blue, Black, Silver, Metro, Office2016 variants)148- Custom theme creation (ThemeBrush collections)149- Color customization properties150- Design-time theme setup151- Theme-specific examples for each gauge type152- Consistent application-wide theming153154### Custom Renderers155📄 **Read:** [references/custom-renderers.md](references/custom-renderers.md)156157When user needs complete control over gauge rendering and appearance. Covers:158- IRadialGaugeRenderer interface159- ILinearGaugeRenderer interface160- Creating custom renderer classes161- DrawOuterArc, DrawNeedle, DrawLabel, DrawRanges methods162- Renderer property assignment163- Advanced customization scenarios164- Complete custom renderer examples165166### Data Binding167📄 **Read:** [references/data-binding.md](references/data-binding.md)168169When user needs real-time data updates or database-driven gauges. Covers:170- DataSource property configuration171- DisplayMember (column mapping)172- DisplayRecordIndex (row mapping)173- High-frequency data updates174- Real-time monitoring scenarios175- Performance considerations176- Complete binding examples for all gauge types177178## Quick Start Examples179180### RadialGauge: Speedometer181182```csharp183using Syncfusion.Windows.Forms.Gauge;184185// Create RadialGauge186RadialGauge speedometer = new RadialGauge();187speedometer.Size = new Size(300, 300);188speedometer.Location = new Point(20, 20);189190// Configure gauge properties191speedometer.MinimumValue = 0;192speedometer.MaximumValue = 200;193speedometer.MajorDifference = 20;194speedometer.MinorDifference = 5;195speedometer.Value = 60;196197// Set frame type198speedometer.FrameType = FrameType.HalfCircle;199200// Configure appearance201speedometer.ShowNeedle = true;202speedometer.NeedleStyle = NeedleStyle.Advanced;203speedometer.GaugeLabel = "Speed (MPH)";204205// Add color-coded ranges206Range range1 = new Range();207range1.StartValue = 0;208range1.EndValue = 80;209range1.Color = Color.Green;210range1.Height = 10;211speedometer.Ranges.Add(range1);212213Range range2 = new Range();214range2.StartValue = 80;215range2.EndValue = 150;216range2.Color = Color.Yellow;217range2.Height = 10;218speedometer.Ranges.Add(range2);219220Range range3 = new Range();221range3.StartValue = 150;222range3.EndValue = 200;223range3.Color = Color.Red;224range3.Height = 10;225speedometer.Ranges.Add(range3);226227// Add to form228this.Controls.Add(speedometer);229```230231### LinearGauge: Battery Level232233```csharp234using Syncfusion.Windows.Forms.Gauge;235236// Create LinearGauge237LinearGauge batteryLevel = new LinearGauge();238batteryLevel.Size = new Size(300, 125);239batteryLevel.Location = new Point(20, 20);240241// Set horizontal orientation242batteryLevel.LinearFrameType = LinearFrameType.Horizontal;243244// Configure gauge properties245batteryLevel.MinimumValue = 0;246batteryLevel.MaximumValue = 100;247batteryLevel.MajorDifference = 20;248batteryLevel.MinorTickCount = 3;249batteryLevel.Value = 75;250251// Configure appearance252batteryLevel.ShowNeedle = true;253batteryLevel.PointerPlacement = Placement.Center;254255// Add color-coded ranges256LinearRange lowRange = new LinearRange();257lowRange.StartValue = 0;258lowRange.EndValue = 20;259lowRange.Color = Color.Red;260lowRange.Height = 8;261batteryLevel.Ranges.Add(lowRange);262263LinearRange normalRange = new LinearRange();264normalRange.StartValue = 20;265normalRange.EndValue = 80;266normalRange.Color = Color.Yellow;267normalRange.Height = 8;268batteryLevel.Ranges.Add(normalRange);269270LinearRange highRange = new LinearRange();271highRange.StartValue = 80;272highRange.EndValue = 100;273highRange.Color = Color.Green;274highRange.Height = 8;275batteryLevel.Ranges.Add(highRange);276277// Add to form278this.Controls.Add(batteryLevel);279```280281### DigitalGauge: LED Clock282283```csharp284using Syncfusion.Windows.Forms.Gauge;285286// Create DigitalGauge287DigitalGauge digitalClock = new DigitalGauge();288digitalClock.Size = new Size(250, 100);289digitalClock.Location = new Point(20, 20);290291// Configure character display292digitalClock.CharacterType = CharacterType.SevenSegment;293digitalClock.CharacterCount = 8;294digitalClock.SegmentSpacing = 2.0f;295296// Set initial value297digitalClock.Value = DateTime.Now.ToString("HH:mm:ss");298299// Configure appearance300digitalClock.ForeColor = Color.Red;301digitalClock.ShowInvisibleSegments = true;302303// Add timer to update clock304Timer clockTimer = new Timer();305clockTimer.Interval = 1000; // 1 second306clockTimer.Tick += (s, e) => {307 digitalClock.Value = DateTime.Now.ToString("HH:mm:ss");308};309clockTimer.Start();310311// Add to form312this.Controls.Add(digitalClock);313```314315## Common Patterns316317### Pattern 1: Dashboard with Multiple Gauges318319```csharp320// Create dashboard layout321FlowLayoutPanel dashboard = new FlowLayoutPanel();322dashboard.Dock = DockStyle.Fill;323324// Temperature gauge (RadialGauge)325RadialGauge tempGauge = new RadialGauge();326tempGauge.MinimumValue = -20;327tempGauge.MaximumValue = 120;328tempGauge.Value = 72;329tempGauge.GaugeLabel = "°F";330tempGauge.FrameType = FrameType.HalfCircle;331dashboard.Controls.Add(tempGauge);332333// Fuel level (LinearGauge)334LinearGauge fuelGauge = new LinearGauge();335fuelGauge.LinearFrameType = LinearFrameType.Vertical;336fuelGauge.MinimumValue = 0;337fuelGauge.MaximumValue = 100;338fuelGauge.Value = 45;339dashboard.Controls.Add(fuelGauge);340341// Status counter (DigitalGauge)342DigitalGauge statusCounter = new DigitalGauge();343statusCounter.CharacterType = CharacterType.SevenSegment;344statusCounter.Value = "1234";345dashboard.Controls.Add(statusCounter);346347this.Controls.Add(dashboard);348```349350### Pattern 2: Data-Bound Real-Time Gauge351352```csharp353// Setup data source354DataTable sensorData = new DataTable();355sensorData.Columns.Add("SensorValue", typeof(float));356sensorData.Rows.Add(0);357358// Create and bind gauge359RadialGauge sensorGauge = new RadialGauge();360sensorGauge.DataSource = sensorData;361sensorGauge.DisplayMember = "SensorValue";362sensorGauge.DisplayRecordIndex = 0;363364// Timer to simulate sensor updates365Timer dataTimer = new Timer();366dataTimer.Interval = 100; // 10 updates per second367dataTimer.Tick += (s, e) => {368 // Update data source (gauge updates automatically)369 sensorData.Rows[0]["SensorValue"] = GetSensorReading();370};371dataTimer.Start();372```373374### Pattern 3: Themed Gauge Set375376```csharp377// Apply consistent theme to all gauges378void ApplyTheme(Control.ControlCollection controls, ThemeStyle theme)379{380 foreach (Control control in controls)381 {382 if (control is RadialGauge radial)383 radial.VisualStyle = theme;384 else if (control is LinearGauge linear)385 linear.VisualStyle = theme;386 else if (control is DigitalGauge digital)387 digital.VisualStyle = theme;388 389 if (control.HasChildren)390 ApplyTheme(control.Controls, theme);391 }392}393394// Usage395ApplyTheme(this.Controls, ThemeStyle.Office2016Colorful);396```397398## Gauge Type Selection Guide399400| Need | Use This Gauge | Why |401|------|---------------|-----|402| Circular display (speedometer style) | **RadialGauge** | Natural for rotary values, intuitive needle movement |403| Arc/partial circle | **RadialGauge** (HalfCircle/QuarterCircle) | Space-efficient, modern dashboard look |404| Horizontal progress bar | **LinearGauge** (Horizontal) | Clear left-to-right progression |405| Vertical level indicator | **LinearGauge** (Vertical) | Natural for height/depth/level visualization |406| Time display (LED style) | **DigitalGauge** (SevenSegment) | Classic digital clock appearance |407| Alphanumeric status code | **DigitalGauge** (FourteenSegment/SixteenSegment) | Supports letters and numbers |408| Multiple needles on one dial | **RadialGauge** (EnableCustomNeedles) | Compare multiple values on same scale |409| Fill-based progress indicator | **RadialGauge** (FrameType.Fill) | Visual fill from start to current value |410411## Key Properties Comparison412413### Common to All Gauges414415| Property | Type | Description |416|----------|------|-------------|417| `Value` | float (Radial/Linear) / string (Digital) | Current displayed value |418| `MinimumValue` | float | Minimum scale value (Radial/Linear only) |419| `MaximumValue` | float | Maximum scale value (Radial/Linear only) |420| `DataSource` | object | Data source for binding |421| `DisplayMember` | string | Column name for value binding |422| `DisplayRecordIndex` | int | Row index for value binding |423424### RadialGauge Specific425426| Property | Type | Description |427|----------|------|-------------|428| `FrameType` | FrameType | FullCircle, HalfCircle, QuarterCircle, Fill |429| `StartAngle` | int | Starting angle of arc (degrees) |430| `SweepAngle` | int | Arc span length (degrees) |431| `ShowNeedle` | bool | Display pointer needle |432| `VisualStyle` | ThemeStyle | Theme: Blue, Black, Silver, Metro, Office2016*, Custom |433| `NeedleStyle` | NeedleStyle | Default, Advanced, Pointer |434| `EnableCustomNeedles` | bool | Allow multiple needles |435| `Ranges` | RangeCollection | Color-coded value ranges |436| `MajorDifference` | float | Spacing between major ticks |437| `MinorDifference` | float | Spacing between minor ticks |438439### LinearGauge Specific440441| Property | Type | Description |442|----------|------|-------------|443| `LinearFrameType` | LinearFrameType | Horizontal or Vertical |444| `PointerPlacement` | Placement | Top, Center, Bottom |445| `ShowNeedle` | bool | Display pointer |446| `VisualStyle` | ThemeStyle | Theme: Blue, Black, Silver, Metro, Office2016*, Custom |447| `Ranges` | LinearRangeCollection | Color-coded value ranges |448| `MajorDifference` | float | Spacing between major ticks |449| `MinorTickCount` | int | Number of minor ticks between majors |450451### DigitalGauge Specific452453| Property | Type | Description |454|----------|------|-------------|455| `Value` | string | Text to display |456| `CharacterType` | CharacterType | DotMatrix, SevenSegment, FourteenSegment, SixteenSegment |457| `CharacterCount` | int | Number of characters to display |458| `SegmentSpacing` | float | Spacing between characters |459| `ShowInvisibleSegments` | bool | Show inactive segments |460| `RoundCornerRadius` | int | Corner rounding radius |461**Note:** DigitalGauge does not support the `VisualStyle` property. Use `ForeColor` and `BackColor` for styling instead.462463## Common Use Cases464465### 1. Industrial Dashboard466**Scenario:** Monitor multiple sensors (pressure, temperature, RPM) 467**Solution:** Multiple RadialGauges with color-coded ranges and real-time data binding468469### 2. Progress Indicator470**Scenario:** Show task completion percentage 471**Solution:** LinearGauge (Horizontal) or RadialGauge (Fill type) with 0-100 range472473### 3. Digital Clock Display474**Scenario:** Display current time in LED format 475**Solution:** DigitalGauge with SevenSegment character type, timer for updates476477### 4. Vehicle Instrument Cluster478**Scenario:** Speedometer, tachometer, fuel gauge 479**Solution:** RadialGauges (HalfCircle for speed/RPM), LinearGauge (Vertical for fuel)480481### 5. System Monitor482**Scenario:** CPU usage, memory, network speed 483**Solution:** Mix of RadialGauges (percentage dials) and DigitalGauges (numeric readouts)484485### 6. Temperature Control486**Scenario:** Thermostat with visual temperature display 487**Solution:** RadialGauge (FullCircle) with color ranges (blue=cold, yellow=moderate, red=hot)488489## Best Practices4904911. **Choose appropriate gauge type** - RadialGauge for rotary values, LinearGauge for linear progression, DigitalGauge for alphanumeric4922. **Use color-coded ranges** - Visual thresholds improve readability (green=good, yellow=warning, red=critical)4933. **Set meaningful scales** - Configure Min/Max and MajorDifference to match your data range4944. **Apply consistent themes** - Use same VisualStyle across all gauges in application4955. **Optimize real-time updates** - Use data binding for frequent updates instead of manual Value setting4966. **Label your gauges** - Set GaugeLabel property to clarify what's being measured4977. **Consider performance** - For many gauges, use SuspendLayout/ResumeLayout when configuring multiple properties4988. **Test different frame types** - HalfCircle and QuarterCircle save space while remaining readable