Siticone Logo
Siticone UI
DOCS
v2025.12.15
Docs Vertical Progress Bar

Siticone VProgressBar

The SiticoneVProgressBar is a vertically-oriented progress indicator that brings the rich feature set of the HProgressBar to a vertical layout. It includes state-aware coloring, drag interaction, smooth animations, and advanced gradient rendering, making it perfect for volume sliders, thermal gauges, and resource monitors.

Values & Range

Core properties determining the progress data and limits.

Property Type Description & Usage Example
Value int vBar.Value = 60; The current progress position. Setting this triggers a momentum-based animation to the new value (unless UltraFastMode is on).
Minimum int vBar.Minimum = 0; The starting value of the range (bottom of the bar).
Maximum int vBar.Maximum = 100; The ending value of the range (top of the bar).

Appearance & Styling

Properties to customize the visual structure, including gradients, corners, and shadows.

Property Type Description & Usage Example
EnableGradient bool vBar.EnableGradient = true; Enables a vertical gradient fill for the progress indicator.
GradientStartColor Color vBar.GradientStartColor = Color.Blue; Bottom color of the gradient.
GradientEndColor Color vBar.GradientEndColor = Color.Cyan; Top color of the gradient.
BackgroundBarColor Color vBar.BackgroundBarColor = Color.WhiteSmoke; Color of the unfilled track behind the progress.
EnableShadow bool vBar.EnableShadow = true; Adds a drop shadow for a 3D depth effect.
CornerRadius... int vBar.CornerRadiusTopLeft = 10; Individual control for all four corner radii (TopLeft, TopRight, BottomLeft, BottomRight).

States & Thresholds

Automatically changes the bar's color when the value reaches defined thresholds (e.g., changing from Green to Red as CPU usage spikes).

Property Type Description & Usage Example
SuccessThreshold int vBar.SuccessThreshold = 100; Value triggering the SuccessColor state.
WarningThreshold int vBar.WarningThreshold = 70; Value triggering the WarningColor state.
ErrorThreshold int vBar.ErrorThreshold = 90; Value triggering the ErrorColor state.
SuccessColor Color vBar.SuccessColor = Color.Green;
WarningColor Color vBar.WarningColor = Color.Orange;
ErrorColor Color vBar.ErrorColor = Color.Red;

Interaction & Behavior

Settings for user interaction modes and display states.

Property Type Description & Usage Example
EnableValueDragging bool vBar.EnableValueDragging = true; Enables changing the value by clicking and dragging vertically on the control.
IsReadonly bool vBar.IsReadonly = true; Disables interaction and applies a distinct "locked" visual style (grayed out).
Indeterminate bool vBar.Indeterminate = true; Activates "Marquee" mode, showing a moving block for unknown progress durations.

Text & Labels

Property Type Description & Usage Example
ShowPercentage bool vBar.ShowPercentage = true; Displays the value percentage vertically centered on the bar.
CustomLabel string vBar.CustomLabel = "Vol"; Overrides percentage text with custom content.
AutoLabelColor bool vBar.AutoLabelColor = true; Automatically adjusts text color (Black/White) for optimal contrast against the bar color.

Animation & Effects

Property Type Description & Usage Example
EnableClickRipple bool vBar.EnableClickRipple = true; Shows a ripple animation at the click location.
ProgressRipple bool vBar.ProgressRipple = true; Emits ripples automatically as the progress value crosses milestones.
CanShake bool vBar.CanShake = true; Shakes the control when clicked in ReadOnly mode.
AnimationDurationMs double vBar.AnimationDurationMs = 300; Duration of the value change animation in milliseconds.
UltraFastMode bool vBar.UltraFastMode = true; Disables complex effects (gradients, ripples) for maximum rendering performance.

Designer & Smart Tags

Access quick configuration tools directly from the Visual Studio designer.

Feature Description
Theme Presets Quickly apply full color themes:
  • Standard: Blue, Green, Red, Orange, Purple.
  • Specialty: Dark Mode, Oceanic Teal, Hot Pink, Charcoal Gray.
  • System: Adapts to OS Light/Dark settings.
Test Actions Simulate animations in the designer: Animate to 0%, 50%, 100%, Success, Warning, or Error thresholds.
Clipboard Copy/Paste UI Settings: Transfer visual configurations between multiple VProgressBar instances instantly.

Detailed Usage Examples

Example 1: Vertical Volume Slider

Configures the control as an interactive volume slider with dragging enabled and a custom gradient.

C# - Volume Control
private void SetupVolumeSlider()
{
    volBar.EnableValueDragging = true;
    volBar.ShowPercentage = true;
    volBar.CustomLabel = "VOL";
    
                // Visuals: Gradient from Blue to Cyan
    volBar.GradientStartColor = Color.Blue;
    volBar.GradientEndColor = Color.Cyan;
    volBar.BackgroundBarColor = Color.FromArgb(240, 240, 240);
    
                // Interaction Feedback
    volBar.EnableClickRipple = true;
    
                // Event handling
    volBar.ValueChanged += (s, e) => 
    {
                SetSystemVolume(e.CurrentValue);
    };
}

Example 2: Temperature Gauge with Thresholds

Uses the built-in thresholds to visualize temperature states (Normal, Warning, Critical) automatically.

C# - Thermal Gauge
private void SetupTempGauge()
{
    tempBar.IsReadonly = true; // Display only
    tempBar.Maximum = 120;
    
                // Configure Thresholds
    tempBar.WarningThreshold = 80;
    tempBar.ErrorThreshold = 100;
    
                // Colors
    tempBar.IndeterminateBarColor = Color.LightBlue; // Normal (Cool)
    tempBar.WarningColor = Color.Orange;    // Warning (Warm)
    tempBar.ErrorColor = Color.Red;         // Error (Hot)
    
                // Disable gradient to show distinct state colors
    tempBar.EnableGradient = false;
}

private void UpdateTemperature(int temp)
{
    tempBar.Value = temp;
    tempBar.CustomLabel = $"Temp\n{temp}°C";
}

Example 3: Indeterminate Loading Tower

Creates a vertical "processing" tower using the indeterminate marquee mode.

C# - Loading State
public void StartProcessing()
{
    procBar.Indeterminate = true;
    procBar.IndeterminateBarColor = Color.MediumPurple;
    procBar.CustomLabel = "Processing...";
    
                // Optional: Rounded ends for a capsule look
    procBar.CornerRadiusTopLeft = 15;
    procBar.CornerRadiusTopRight = 15;
    procBar.CornerRadiusBottomLeft = 15;
    procBar.CornerRadiusBottomRight = 15;
}

public void FinishProcessing()
{
    procBar.Indeterminate = false;
    procBar.Value = 100;
    procBar.CustomLabel = "Done";
    procBar.SuccessColor = Color.LimeGreen;
}