Siticone Radial Progress Bar
The SiticoneRadialProgressBar is an advanced circular gauge designed for data visualization and user interaction.
It combines sleek visuals like gradients, shadows, and range-based coloring with interactive features such as mouse dragging, wheel support, and keyboard adjustments.
Perfect for dashboards, status indicators, and interactive volume/level controls.
Values & Range
Properties that define the numeric model of the gauge.
| Property | Type | Description & Usage Example |
|---|---|---|
Value |
double |
radial.Value = 75.5;
The current position of the indicator. Setting this triggers a momentum-based animation to the new value unless UltraFastPerformance is enabled.
|
Minimum |
double | radial.Minimum = 0; The lower bound of the scale. |
Maximum |
double | radial.Maximum = 100; The upper bound of the scale. |
Visual Customization
Configure the look and feel of the circular track, progress arc, and fill.
| Property | Type | Description & Usage Example |
|---|---|---|
ProgressBaseColor |
Color | radial.ProgressBaseColor = Color.FromArgb(40, 40, 40); The color of the outer ring/border. |
BackColor |
Color | radial.BackColor = Color.WhiteSmoke; The background fill color of the circle. |
FillProgressArea |
bool | radial.FillProgressArea = true; When true, fills the pie slice area corresponding to the progress. When false, only draws the progress arc/stroke. |
ShowRadialBorder |
bool | radial.ShowRadialBorder = true; Draws a border along the progress arc. |
StartAngle |
int | radial.StartAngle = -90; The starting angle in degrees (-90 is top). |
EnableTextShadow |
bool | radial.EnableTextShadow = true; Adds a drop shadow to the central value text for better readability. |
Color Systems
The control supports three distinct coloring modes: Solid (Readonly), Cycling Gradient (Animated), and Range-Based (Dynamic).
| Property | Type | Description & Usage Example |
|---|---|---|
CurrentColorTheme |
ColorTheme | radial.CurrentColorTheme = ColorTheme.Ocean; Quickly applies a preset color palette (Default, Ocean, Forest, Sunset). |
EnableRangeBasedColoring |
bool | radial.EnableRangeBasedColoring = true; Enables dynamic coloring based on the current value. E.g., Green (0-33%), Yellow (34-66%), Red (67-100%). |
ProgressColorRanges |
List<Range> |
radial.ProgressColorRanges.Add(new ProgressColorRange { Minimum=0, Maximum=50, Color=Color.Blue });
The collection of ranges used when EnableRangeBasedColoring is true.
|
ColorAnimationCycle |
List<Color> | radial.ColorAnimationCycle = new List<Color> { Color.Red, Color.Blue }; A list of colors that the progress bar smoothly cycles through over time. |
User Interaction
Turn the progress bar into an interactive input control.
| Property | Type | Description & Usage Example |
|---|---|---|
MouseDragOrClickResponsive |
bool | radial.MouseDragOrClickResponsive = true; Allows users to click or drag on the circle to set the value. |
MouseWheelResponsive |
bool | radial.MouseWheelResponsive = true; Enables changing the value by scrolling the mouse wheel over the control. |
EnableKeyboardSupport |
bool | radial.EnableKeyboardSupport = true; Allows changing the value using Up/Down arrow keys when the control is focused. |
IsReadonly |
bool | radial.IsReadonly = true; Locks the value. Interaction attempts trigger feedback (Shake/Beep) if enabled. |
Effects & Animation
Add life to your UI with built-in visual effects.
| Property | Type | Description & Usage Example |
|---|---|---|
Indeterminate |
bool | radial.Indeterminate = true; Shows a spinning loading animation instead of a specific value. |
EnablePulsate |
bool | radial.EnablePulsate = true; Creates a breathing/scaling effect for the entire control. |
EnableBounce |
bool | radial.EnableBounce = true; Triggers a bounce animation whenever the value changes. |
EnableContinuousRotation |
bool | radial.EnableContinuousRotation = true; Makes the entire progress arc rotate slowly while maintaining its length. |
Designer & Smart Tags
The control includes a comprehensive Smart Tag menu for rapid configuration.
| Feature Category | Capabilities |
|---|---|
Theme Presets |
Instantly apply professional styles:
|
Quick Setup |
Setup for Task Progress: Configures for percentage display. Setup for Loading: Enables indeterminate mode. Setup for User Control: Enables mouse/keyboard interaction. |
Settings |
Copy/Paste Settings: Easily transfer configurations between controls. |
Detailed Usage Examples
Example 1: Interactive Volume Knob
Using the control as an input device for volume.
private void SetupVolumeControl()
{
volumeRadial.Minimum = 0;
volumeRadial.Maximum = 100;
volumeRadial.Value = 50;
// Enable interactions
volumeRadial.MouseDragOrClickResponsive = true;
volumeRadial.MouseWheelResponsive = true;
volumeRadial.EnableKeyboardSupport = true;
// Visuals
volumeRadial.TextFormat = "{0}%";
volumeRadial.FillProgressArea = true;
volumeRadial.CurrentColorTheme = ColorTheme.Ocean;
}
private void volumeRadial_ValueChanged(object sender, ValueChangedEventArgs e)
{
// Apply volume to system
audioService.SetVolume(e.Value);
}
Example 2: Health Status with Ranges
Visualizing system health with automatic color changes.
private void SetupHealthMonitor()
{
healthRadial.EnableRangeBasedColoring = true;
healthRadial.ProgressColorRanges.Clear();
// Define ranges
healthRadial.ProgressColorRanges.Add(
new ProgressColorRange { Minimum = 0, Maximum = 50, Color = Color.Red }
);
healthRadial.ProgressColorRanges.Add(
new ProgressColorRange { Minimum = 51, Maximum = 80, Color = Color.Orange }
);
healthRadial.ProgressColorRanges.Add(
new ProgressColorRange { Minimum = 81, Maximum = 100, Color = Color.Green }
);
// Effects
healthRadial.EnablePulsate = true;
}
Example 3: Indeterminate Loading Task
Switching to loading mode during an async operation.
private async void StartProcess_Click(object sender, EventArgs e)
{
// Switch to loading mode
taskRadial.Indeterminate = true;
taskRadial.TextFormat = "Loading...";
await Task.Delay(3000); // Simulate work
// Switch back to progress mode
taskRadial.Indeterminate = false;
taskRadial.TextFormat = "{0}%";
taskRadial.Value = 100;
}