Siticone Circular Resource Monitor
The SiticoneCircularResourceMonitor is a purpose-built gauge for visualizing system metrics like CPU usage, RAM, or Network load.
It combines a radial progress bar with integrated logic for Normal, Warning, Critical, and Overload states.
Capacity & Value
Core properties for managing the monitored resource data.
| Property | Type | Description & Usage Example |
|---|---|---|
Value |
double | monitor.Value = 45.5; Current resource usage. Updates trigger smooth animation and threshold checks. |
MaxCapacity |
double | monitor.MaxCapacity = 16384; Maximum available resource (e.g., Total RAM in MB). |
ResourceType |
ResourceType |
monitor.ResourceType = ResourceType.CPU;
Type label for the resource. Options: CPU, Memory, Disk, Network, Custom.
|
Alert Thresholds
Configure automatic color changes and events based on usage percentages.
| Property | Type | Description & Usage Example |
|---|---|---|
WarningThreshold |
double | monitor.WarningThreshold = 70; Percentage (0-100) to trigger Warning state. |
CriticalThreshold |
double | monitor.CriticalThreshold = 90; Percentage (0-100) to trigger Critical state. |
EnableThresholdAlerts |
bool |
monitor.EnableThresholdAlerts = true;
Fires ThresholdCrossed events when limits are breached.
|
Visual Style
Customize the gauge's colors, gradients, and animation style.
| Property | Type | Description & Usage Example |
|---|---|---|
DesignStyle |
DesignStyle |
monitor.DesignStyle = ResourceMonitorDesignStyle.RainBow;
Solid: Single color based on state.RainBow: Gradient based on usage %.Animated: Cycling color animation.
|
NormalColor |
Color | monitor.NormalColor = Color.Green; Color for usage below Warning threshold. |
WarningColor |
Color | monitor.WarningColor = Color.Orange; Color for usage between Warning and Critical thresholds. |
CriticalColor |
Color | monitor.CriticalColor = Color.Red; Color for usage above Critical threshold. |
Public Methods
// Updates the current value, triggering animations and alerts.
monitor.UpdateValue(85.5);
// Sets the value to 0.
monitor.ResetResource();
// Returns the current usage as a percentage (0-100).
double pct = monitor.GetUsagePercentage();
Events
// 1. ValueChanged Event
monitor.ValueChanged += (s, e) =>
{
Console.WriteLine($"Usage: {e.NewValue} / {e.MaxCapacity}");
};
// 2. ThresholdCrossed Event
// Fires when entering Warning or Critical zones.
monitor.ThresholdCrossed += (s, e) =>
{
if (e.IsEntering)
MessageBox.Show(e.AlertMessage);
};
// 3. ResourceOverload Event
// Fires if usage exceeds 100%.
monitor.ResourceOverload += (s, e) =>
{
Debug.WriteLine($"OVERLOAD! Amount: {e.OverloadAmount}");
};
Designer & Smart Tags
Visual Studio design-time features.
| Feature | Description |
|---|---|
Presets |
CPU Monitor: Percentage based, rainbow style. Memory Monitor: GB suffix, solid style. Disk Monitor: TB suffix, critical alerts. Network Monitor: Mbps unit, animated style. |
Testing |
Set to Warning/Critical/Overload: Instantly set values to test visual states and events. |
Detailed Usage Examples
Example 1: CPU Monitor
Standard setup for CPU usage monitoring with rainbow gradient.
private void SetupCpuMonitor()
{
cpuMonitor.ResourceType = ResourceType.CPU;
cpuMonitor.MaxCapacity = 100;
cpuMonitor.ValueSuffix = "%";
// Visuals
cpuMonitor.DesignStyle = ResourceMonitorDesignStyle.RainBow;
cpuMonitor.ProgressThickness = 12;
// Logic
cpuMonitor.WarningThreshold = 75;
cpuMonitor.CriticalThreshold = 90;
}
public void UpdateCpu(float usage)
{
cpuMonitor.Value = usage;
}
Example 2: Server Memory Monitor
Monitors RAM usage in Gigabytes with specific alert thresholds.
private void SetupRamMonitor()
{
ramMonitor.ResourceType = ResourceType.Memory;
ramMonitor.MaxCapacity = 32; // 32 GB Total
ramMonitor.ValueSuffix = " GB";
ramMonitor.ValueFormat = "0.0";
// Solid style changes color by state
ramMonitor.DesignStyle = ResourceMonitorDesignStyle.Solid;
ramMonitor.NormalColor = Color.DodgerBlue;
ramMonitor.ThresholdCrossed += (s, e) =>
{
if (e.Status == ResourceStatus.Critical)
LogMemoryWarning();
};
}