syncfusion-wpf-linear-gauge — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-wpf-linear-gauge (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A comprehensive guide for implementing the Syncfusion WPF Linear Gauge (SfLinearGauge) control in Windows Presentation Foundation applications. The Linear Gauge displays numerical values graphically along a linear scale, making it ideal for thermometers, progress indicators, sliding meters, and value visualization in horizontal or vertical orientations.
Use this skill when you need to:
The SfLinearGauge control measures and displays values along a linear scale in either horizontal or vertical orientation. It provides a complete gauge visualization system with:
Key capabilities:
📄 Read: references/getting-started.md
When to read: Starting a new Linear Gauge implementation or first-time setup.
Covers:
📄 Read: references/scale-configuration.md
When to read: Configuring the scale's appearance, range, intervals, size, direction, or position.
Covers:
📄 Read: references/pointers.md
When to read: Adding pointers to mark values, implementing bar or symbol pointers, customizing pointer appearance, enabling animations, or adding multiple pointers.
Covers:
📄 Read: references/ranges.md
When to read: Highlighting value ranges with colors, creating threshold zones, adding multiple ranges, or customizing range appearance and position.
Covers:
📄 Read: references/labels-and-ticks.md
When to read: Customizing scale labels, formatting label text, positioning labels, configuring tick marks, or adjusting tick intervals.
Covers:
📄 Read: references/orientation.md
When to read: Changing gauge orientation from horizontal to vertical or vice versa.
Covers:
Here's a minimal working Linear Gauge with a scale, bar pointer, symbol pointer, and colored range:
<Window xmlns:gauge="clr-namespace:Syncfusion.UI.Xaml.Gauges;assembly=Syncfusion.SfGauge.Wpf">
<Grid>
<gauge:SfLinearGauge>
<gauge:SfLinearGauge.MainScale>
<gauge:LinearScale
Minimum="0"
Maximum="100"
Interval="10"
ScaleBarStroke="#E0E0E0"
LabelStroke="#424242"
MajorTickStroke="Gray"
MajorTickSize="15"
MinorTickStroke="Gray"
MinorTickSize="7"
MinorTicksPerInterval="3"
ScaleBarSize="10"
ScaleBarLength="300">
<!-- Bar Pointer -->
<gauge:LinearScale.Pointers>
<gauge:LinearPointer
PointerType="BarPointer"
Value="65"
BarPointerStroke="#36D1DC"
BarPointerStrokeThickness="10"/>
<!-- Symbol Pointer -->
<gauge:LinearPointer
PointerType="SymbolPointer"
Value="65"
SymbolPointerHeight="15"
SymbolPointerWidth="15"
SymbolPointerPosition="Above"
SymbolPointerStroke="#5B86E5"/>
</gauge:LinearScale.Pointers>
<!-- Colored Ranges -->
<gauge:LinearScale.Ranges>
<gauge:LinearRange
StartValue="0"
EndValue="35"
RangeStroke="#27BEB7"
StartWidth="10"
EndWidth="10"
RangeOffset="0.4"/>
<gauge:LinearRange
StartValue="35"
EndValue="70"
RangeStroke="Orange"
StartWidth="10"
EndWidth="10"
RangeOffset="0.4"/>
<gauge:LinearRange
StartValue="70"
EndValue="100"
RangeStroke="Red"
StartWidth="10"
EndWidth="10"
RangeOffset="0.4"/>
</gauge:LinearScale.Ranges>
</gauge:LinearScale>
</gauge:SfLinearGauge.MainScale>
</gauge:SfLinearGauge>
</Grid>
</Window>using Syncfusion.UI.Xaml.Gauges;
using System.Windows.Media;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
CreateLinearGauge();
}
private void CreateLinearGauge()
{
// Create gauge
SfLinearGauge gauge = new SfLinearGauge();
// Create scale
LinearScale scale = new LinearScale
{
Minimum = 0,
Maximum = 100,
Interval = 10,
ScaleBarStroke = new SolidColorBrush(Color.FromRgb(224, 224, 224)),
LabelStroke = new SolidColorBrush(Color.FromRgb(66, 66, 66)),
MajorTickStroke = new SolidColorBrush(Colors.Gray),
MajorTickSize = 15,
MinorTickStroke = new SolidColorBrush(Colors.Gray),
MinorTickSize = 7,
MinorTicksPerInterval = 3,
ScaleBarSize = 10,
ScaleBarLength = 300
};
// Add bar pointer
scale.Pointers.Add(new LinearPointer
{
PointerType = LinearPointerType.BarPointer,
Value = 65,
BarPointerStroke = new SolidColorBrush(Color.FromRgb(54, 209, 220)),
BarPointerStrokeThickness = 10
});
// Add symbol pointer
scale.Pointers.Add(new LinearPointer
{
PointerType = LinearPointerType.SymbolPointer,
Value = 65,
SymbolPointerHeight = 15,
SymbolPointerWidth = 15,
SymbolPointerPosition = LinearSymbolPointersPosition.Above,
SymbolPointerStroke = new SolidColorBrush(Color.FromRgb(91, 134, 229))
});
// Add ranges
scale.Ranges.Add(new LinearRange
{
StartValue = 0,
EndValue = 35,
RangeStroke = new SolidColorBrush(Color.FromRgb(39, 190, 183)),
StartWidth = 10,
EndWidth = 10,
RangeOffset = 0.4
});
gauge.MainScale = scale;
this.Content = gauge;
}
}Create a thermometer-style gauge with vertical orientation:
<gauge:SfLinearGauge Orientation="Vertical">
<gauge:SfLinearGauge.MainScale>
<gauge:LinearScale
Minimum="-20"
Maximum="120"
LabelPostfix="°C"
ScaleBarSize="15">
<gauge:LinearScale.Pointers>
<gauge:LinearPointer
PointerType="BarPointer"
Value="37"
BarPointerStroke="Red"
BarPointerStrokeThickness="15"/>
</gauge:LinearScale.Pointers>
</gauge:LinearScale>
</gauge:SfLinearGauge.MainScale>
</gauge:SfLinearGauge>Show progress with animated pointer:
<gauge:LinearScale.Pointers>
<gauge:LinearPointer
PointerType="BarPointer"
Value="{Binding ProgressValue}"
EnableAnimation="True"
AnimationDuration="500"
BarPointerStroke="#36D1DC"
BarPointerStrokeThickness="12"/>
</gauge:LinearScale.Pointers>Create safe/warning/danger zones:
<gauge:LinearScale.Ranges>
<!-- Safe Zone (Green) -->
<gauge:LinearRange
StartValue="0"
EndValue="60"
RangeStroke="Green"
StartWidth="15"
EndWidth="15"/>
<!-- Warning Zone (Yellow) -->
<gauge:LinearRange
StartValue="60"
EndValue="80"
RangeStroke="Yellow"
StartWidth="15"
EndWidth="15"/>
<!-- Danger Zone (Red) -->
<gauge:LinearRange
StartValue="80"
EndValue="100"
RangeStroke="Red"
StartWidth="15"
EndWidth="15"/>
</gauge:LinearScale.Ranges>Compare two values on one scale:
<gauge:LinearScale.Pointers>
<!-- Current Value -->
<gauge:LinearPointer
PointerType="SymbolPointer"
Value="75"
SymbolPointerStroke="Blue"
SymbolPointerPosition="Above"/>
<!-- Target Value -->
<gauge:LinearPointer
PointerType="SymbolPointer"
Value="90"
SymbolPointerStroke="Green"
SymbolPointerPosition="Below"/>
</gauge:LinearScale.Pointers>| Property | Type | Description |
|---|---|---|
| MainScale | LinearScale | The primary scale containing all gauge elements |
| Orientation | Orientation | Horizontal (default) or Vertical layout |
| Property | Type | Description |
|---|---|---|
| Minimum | double | Minimum value of the scale (default: 0) |
| Maximum | double | Maximum value of the scale (default: 100) |
| Interval | double | Spacing between major ticks and labels |
| ScaleBarStroke | Brush | Scale bar background color |
| ScaleBarSize | double | Scale bar thickness (height in horizontal) |
| ScaleBarLength | double | Scale bar length (width in horizontal) |
| ScaleDirection | LinearScaleDirection | Forward or Backward |
| Pointers | ObservableCollection | Collection of LinearPointer objects |
| Ranges | ObservableCollection | Collection of LinearRange objects |
| LabelStroke | Brush | Label text color |
| LabelPosition | LinearLabelsPosition | Above or Below scale |
| LabelPrefix | string | Text to prepend to labels |
| LabelPostfix | string | Text to append to labels |
| MajorTickStroke | Brush | Major tick color |
| MajorTickSize | double | Major tick length |
| MinorTickStroke | Brush | Minor tick color |
| MinorTickSize | double | Minor tick length |
| MinorTicksPerInterval | int | Number of minor ticks between major ticks |
| TickPosition | LinearTicksPosition | Above, Below, or Cross |
| Property | Type | Description |
|---|---|---|
| PointerType | LinearPointerType | BarPointer or SymbolPointer |
| Value | double | The pointer's value on the scale |
| BarPointerStroke | Brush | Bar pointer color |
| BarPointerStrokeThickness | double | Bar pointer width |
| SymbolPointerStroke | Brush | Symbol pointer color |
| SymbolPointerHeight | double | Symbol pointer height |
| SymbolPointerWidth | double | Symbol pointer width |
| SymbolPointerPosition | LinearSymbolPointersPosition | Above, Below, or Cross |
| EnableAnimation | bool | Enable smooth pointer transitions |
| AnimationDuration | int | Animation duration in milliseconds |
| Property | Type | Description |
|---|---|---|
| StartValue | double | Range beginning value |
| EndValue | double | Range ending value |
| RangeStroke | Brush | Range color |
| StartWidth | double | Range width at start |
| EndWidth | double | Range width at end (for tapered ranges) |
| RangeOffset | double | Distance from scale bar |
| RangeOpacity | double | Range transparency (0.0 to 1.0) |
Display temperature readings with color-coded ranges for normal, warning, and critical temperatures. Use vertical orientation for thermometer-style visualization.
Track KPIs, CPU usage, memory consumption, or other performance indicators with bar pointers showing current values and ranges indicating acceptable thresholds.
Show completion percentage for tasks, downloads, or processes with animated bar pointers that smoothly transition as values update.
Create virtual instruments for pressure gauges, speedometers, voltmeters, or any measurement that benefits from linear scale visualization.
Use multiple pointers to compare actual vs. target values, current vs. previous values, or multiple metrics on a single scale.
Integrate linear gauges into dashboards as compact, visually appealing widgets for at-a-glance data monitoring.
Online API Reference:
Next Steps: Navigate to the reference files above based on your implementation needs. Start with getting-started.md for initial setup, then explore specific features as required.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.