Siticone Logo
Siticone UI
DOCS
v2025.12.15
Docs Circular Resource Monitor

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

UpdateValue(double)
// Updates the current value, triggering animations and alerts.
monitor.UpdateValue(85.5);
ResetResource()
// Sets the value to 0.
monitor.ResetResource();
GetUsagePercentage()
// Returns the current usage as a percentage (0-100).
double pct = monitor.GetUsagePercentage();

Events

Events Wiring
// 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.

C# - CPU Gauge
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.

C# - RAM Gauge
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();
    };
}