Siticone Super Progress Bar
The SiticoneSuperProgressBar is a cutting-edge, linear progress indicator built for high-fidelity applications.
It transcends traditional static bars by incorporating physics-based momentum animations (acceleration/deceleration), rich gradient support (Rainbow, Animated), and an event-driven architecture for milestones and state changes.
Values & Range
Properties defining the numeric model of the progress bar.
| Property | Type | Description & Usage Example |
|---|---|---|
Value |
double | bar.Value = 75.5; The target value. Setting this property initiates a momentum-based animation from the current visual value to the new target. |
CurrentValue |
double | double visualVal = bar.CurrentValue; Read-Only. Returns the actual animated value currently being rendered on screen. |
Minimum |
double | bar.Minimum = 0; The lower bound of the progress scale. |
Maximum |
double | bar.Maximum = 100; The upper bound of the progress scale. |
Styling & Design
Customize the visual rendering mode, colors, and dimensions.
| Property | Type | Description & Usage Example |
|---|---|---|
DesignStyle |
ProgressDesignStyle |
bar.DesignStyle = ProgressDesignStyle.RainBow;
Solid: Single flat color. RainBow: Smooth multi-color gradient. Animated: Dynamic shifting color spectrum. |
SolidColor |
Color |
bar.SolidColor = Color.DodgerBlue;
The primary fill color when using Solid style.
|
RainbowColors |
Color[] |
bar.RainbowColors = new Color[] { Color.Red, Color.Blue };
Array of colors used to generate the static gradient for RainBow style.
|
AnimatedColors |
Color[] |
bar.AnimatedColors = new Color[] { Color.Cyan, Color.Magenta };
Array of colors that cycle smoothly across the bar in Animated style.
|
ProgressThickness |
int | bar.ProgressThickness = 10; The height of the active progress indicator in pixels. |
BaselineThickness |
int | bar.BaselineThickness = 2; The height of the background track line in pixels. |
Physics & Motion
Fine-tune the "feel" of the value transition using spring physics parameters.
| Property | Type | Description & Usage Example |
|---|---|---|
AnimationSpeed |
double | bar.AnimationSpeed = 0.1; Controls the velocity of the transition. Higher values result in faster movement. |
Damping |
double | bar.Damping = 0.85; Controls the "friction" of the motion. Lower values cause more oscillation/bounce before settling; values closer to 1.0 are smoother. |
ColorAnimationSpeed |
double |
bar.ColorAnimationSpeed = 0.02;
The speed of the color shift effect when DesignStyle is set to Animated.
|
Events
Rich event system for monitoring state changes, milestones, and rendering.
// Value Changed Event
// Fires every tick during animation, providing detailed interpolation data.
bar.ValueChanged += (s, e) =>
{
Console.WriteLine($"Current: {e.CurrentAnimatedValue:F1} / Target: {e.NewValue:F1}");
};
// Milestone Event
// Fires when progress crosses key percentage markers (10%, 25%, 50%, 75%, 90%, 100%).
bar.ProgressMilestone += (s, e) =>
{
Console.WriteLine($"Milestone Reached: {e.MilestonePercent}%");
// Example: Play sound or flash UI
};
// Animation State Changed
// Fires when the bar starts/stops moving or changes acceleration phase.
bar.AnimationStateChanged += (s, e) =>
{
Console.WriteLine($"State: {e.NewState} (Velocity: {e.Velocity:F2})");
};
Designer & Smart Tags
Includes a comprehensive Smart Tag panel for rapid visual configuration.
| Feature Category | Capabilities |
|---|---|
Theme Presets |
Instantly apply professional styles:
|
Quick Values |
Set to 25% / 50% / 75% / 100%: Quickly test different fill levels in the designer. |
Settings |
Copy/Paste Settings: Transfer complex configurations between multiple bars. |
Detailed Usage Examples
Example 1: Game Health Bar
Creating a dynamic health bar that changes color based on value.
private void UpdateHealth(double health)
{
hpBar.Value = health;
// Dynamically change style based on health percentage
if (health < 20)
{
hpBar.DesignStyle = ProgressDesignStyle.Animated;
hpBar.AnimatedColors = new[] { Color.Red, Color.DarkRed };
hpBar.ColorAnimationSpeed = 0.05; // Fast pulse
}
else
{
hpBar.DesignStyle = ProgressDesignStyle.Solid;
hpBar.SolidColor = Color.LimeGreen;
}
}
Example 2: File Transfer with Milestones
Using events to trigger notifications during a long process.
private void SetupTransferBar()
{
transferBar.Minimum = 0;
transferBar.Maximum = 100;
// Hook into milestone event
transferBar.ProgressMilestone += (s, e) =>
{
if (e.MilestonePercent == 50)
Console.WriteLine("Halfway there!");
if (e.MilestonePercent == 100)
MessageBox.Show("Transfer Complete!");
};
}
Example 3: Custom Drawing
Overriding the paint event to add custom text or graphics on top of the bar.
// Subscribe to AfterProgressPaint
customBar.AfterProgressPaint += (s, e) =>
{
string text = $"{(int)e.Percentage}%";
using (var font = new Font("Arial", 8))
using (var brush = new SolidBrush(Color.Black))
{
// Draw percentage in the center
var size = e.Graphics.MeasureString(text, font);
float x = e.FullBounds.X + (e.FullBounds.Width - size.Width) / 2;
float y = e.FullBounds.Y + (e.FullBounds.Height - size.Height) / 2;
e.Graphics.DrawString(text, font, brush, x, y);
}
};