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:
|
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.
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.
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.
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;
}