Siticone HLine Progress
The SiticoneHLineProgress is a sophisticated single-line progress indicator designed for modern WinForms applications.
It features high-quality buffered rendering, physics-based animations (Bounce, Elastic, Spring), gradient backgrounds, and an integrated "completion pulse" effect for enhanced visual feedback.
Values & Range
Properties managing the data visualized by the control.
| Property | Type | Description & Usage Example |
|---|---|---|
Value |
double | progress.Value = 75.0; The target value of the progress bar. Setting this property automatically triggers the animation from the current visual state to the new target. |
Minimum |
double | progress.Minimum = 0; The lower bound of the progress range (default 0). |
Maximum |
double | progress.Maximum = 100; The upper bound of the progress range (default 100). |
Appearance & Colors
Visual styling options including gradients, opacity, and glow effects.
| Property | Type | Description & Usage Example |
|---|---|---|
PrimaryColor |
Color | progress.PrimaryColor = Color.DodgerBlue; The main color of the progress fill. |
SecondaryColor |
Color | progress.SecondaryColor = Color.DeepSkyBlue; The second color used for gradient shading. |
GradientDirection |
GradientDirection | progress.GradientDirection = GradientDirection.Horizontal; Direction of the color blend (Vertical, Horizontal, Diagonal). |
BackgroundOpacity |
int | progress.BackgroundOpacity = 30; Alpha value (0-255) for the unfilled track background. Lower values create a subtle track. |
HighlightOpacity |
int | progress.HighlightOpacity = 50; Intensity of the top-edge highlight stroke (0-255) for a 3D glass effect. |
EnableGlow |
bool | progress.EnableGlow = true; Enables a soft inner glow on the filled portion of the bar. |
Animation System
Controls the physics and speed of the progress bar movement.
| Property | Type | Description & Usage Example |
|---|---|---|
TransitionEffect |
TransitionEffect |
progress.TransitionEffect = TransitionEffect.Elastic;
The mathematical easing function used for movement.
Options: Linear, EaseInOut, Bounce, Elastic, Spring.
|
AnimationSpeed |
double | progress.AnimationSpeed = 0.15; Speed factor (0.01 to 1.0). Higher values result in faster transitions. |
Pulse Animation
Configuration for the "completion pulse" effect that triggers when the progress reaches 100%.
| Property | Type | Description & Usage Example |
|---|---|---|
EnablePulseAnimation |
bool | progress.EnablePulseAnimation = true; If true, the bar gently pulses (breathing effect) when Value reaches Maximum. |
PulseColor |
Color | progress.PulseColor = Color.White; The overlay color used for the pulse flash. |
PulseDuration |
int | progress.PulseDuration = 1500; Duration of a full pulse cycle in milliseconds. |
PulseMaxOpacity |
int | progress.PulseMaxOpacity = 100; Peak opacity (0-255) of the pulse overlay. |
Corner Radius
Properties for customizing the geometry of the progress bar ends.
| Property | Type | Description & Usage Example |
|---|---|---|
SyncCornerRadius |
bool | progress.SyncCornerRadius = true; If true, changing any corner radius property updates all four corners simultaneously. |
TopLeftRadius |
float | progress.TopLeftRadius = 5f; |
TopRightRadius |
float | progress.TopRightRadius = 5f; |
BottomLeftRadius |
float | progress.BottomLeftRadius = 5f; |
BottomRightRadius |
float | progress.BottomRightRadius = 5f; |
Public Methods
// Helper method to set all four corner radii independently in a single call.
// Temporarily disables 'SyncCornerRadius' to apply asymmetric shapes.
public void ApplyCustomShape()
{
// Create a "leaf" shape: Top-Left and Bottom-Right rounded
hLineProgress1.SetCornerRadii(10f, 0f, 10f, 0f);
}
Designer & Smart Tags
The control offers extensive design-time support via the Visual Studio Smart Tag menu.
| Feature | Description |
|---|---|
Theme Presets |
Quickly apply color schemes:
|
Animation Presets |
Instantly configure motion physics:
|
Corner Presets |
Shape configurations: Square, Rounded, Circular (Pill shape), and Custom. |
Detailed Usage Examples
Example 1: Task Completion with Pulse
Configures the progress bar to show task progress and pulse visibly when the task finishes (reaches 100%).
private void SetupTaskProgressBar()
{
progressBar.Minimum = 0;
progressBar.Maximum = 100;
// Configure visual style
progressBar.PrimaryColor = Color.MediumSeaGreen;
progressBar.SecondaryColor = Color.SeaGreen;
progressBar.GradientDirection = GradientDirection.Horizontal;
progressBar.EnableGlow = true;
// Enable pulse on completion
progressBar.EnablePulseAnimation = true;
progressBar.PulseColor = Color.White;
progressBar.PulseMaxOpacity = 150;
// Smooth animation
progressBar.TransitionEffect = TransitionEffect.EaseInOut;
progressBar.AnimationSpeed = 0.1;
}
private void UpdateProgress(int percent)
{
// Setting the value automatically animates to the new percentage.
// If percent is 100, the pulse animation will start automatically.
progressBar.Value = percent;
}
Example 2: Physics-Based Feedback
Uses the Elastic transition effect to give the progress bar a responsive, organic feel, suitable for interactive sliders or volume controls.
private void ConfigureElasticBar()
{
progressBar.Value = 0;
// Set 'Elastic' effect for springy motion
progressBar.TransitionEffect = TransitionEffect.Elastic;
// Lower speed emphasizes the elastic wobble
progressBar.AnimationSpeed = 0.08;
// High opacity highlight for "glassy" look
progressBar.HighlightOpacity = 100;
progressBar.BackgroundOpacity = 40;
}
private void btnBoost_Click(object sender, EventArgs e)
{
// When clicked, the bar will spring to 80% and wobble before settling
progressBar.Value = 80;
}
Example 3: Asymmetric Styling (Custom Shapes)
Demonstrates how to use SetCornerRadii to create a unique shape, such as a tab indicator or a specialized HUD element.
public void ApplyTabStyle()
{
// Set standard size
progressBar.Height = 10;
// Create a shape flat on bottom, rounded on top
// (TopLeft, TopRight, BottomRight, BottomLeft)
progressBar.SetCornerRadii(10f, 10f, 0f, 0f);
// Custom styling
progressBar.PrimaryColor = Color.Orange;
progressBar.SecondaryColor = Color.DarkOrange;
progressBar.BackgroundOpacity = 0; // Transparent track
}