Siticone Activity Indicator Adv
The SiticoneActivityIndicatorAdv is the premium, feature-rich version of the standard activity indicator.
It introduces advanced gradient rendering, over 20 stunning visual themes (like "Cosmic Fusion" and "Aurora Borealis"), multiple animation styles (Continuous/Pulsing), and granular control over animation physics.
Designed for high-end applications, it maintains smooth 60fps performance through optimized GDI+ rendering.
Core Animation & State
Fundamental properties for controlling the indicator's behavior.
| Property | Type | Description & Usage Example |
|---|---|---|
StartAnimation |
bool |
loader.StartAnimation = true;
Controls the running state. Setting to true starts the physics loop; false pauses it instantly.
|
AnimationStyle |
AnimationStyleAdv |
loader.AnimationStyle = AnimationStyleAdv.Pulsing;
Selects the motion pattern: Continuous (smooth rotation) or Pulsing (expand/contract breathing effect).
|
UltraPerformance |
bool | loader.UltraPerformance = true; Enables a high-speed rendering mode that simplifies gradients for maximum FPS on low-power devices. |
Gradient & Visuals
Properties for crafting beautiful, multi-colored gradient strokes.
| Property | Type | Description & Usage Example |
|---|---|---|
Theme |
ActivityIndicatorThemeAdv | loader.Theme = ActivityIndicatorThemeAdv.AuroraBorealis; Applies one of 20+ preset visual styles, instantly configuring gradients and animation physics. |
UseGradient |
bool | loader.UseGradient = true; Toggles gradient rendering. If false, uses a solid color derived from the first item in the color list. |
GradientColors |
List<Color> | loader.GradientColors.Add(Color.Gold); The collection of colors used to build the gradient arc. The indicator smoothly interpolates between these colors. |
StrokeWidth |
int | loader.StrokeWidth = 8; The thickness of the gradient arc in pixels. |
Advanced Physics
Fine-tune the mathematical model driving the animation for a unique "feel".
| Property | Type | Description & Usage Example |
|---|---|---|
AnimationSpeed |
int | loader.AnimationSpeed = 10; Timer interval in ms. Lower values = smoother, faster updates. |
RotationSpeed |
double | loader.RotationSpeed = 5.0; Degrees of rotation per frame. Controls the overall spin velocity. |
SpringConstant |
double | loader.SpringConstant = 0.05; Controls the elasticity of the expanding arc. Higher values feel snappier; lower values feel heavier. |
MaxSweepAngle |
int | loader.MaxSweepAngle = 300; Maximum arc length in degrees during the expansion phase. |
Methods
Programmatic control for integrating the indicator into complex workflows.
// Begins the animation loop
loader.Start();
// Halts the animation at the current frame
loader.Stop();
// Stops animation and resets all angles/colors to initial state
loader.Reset();
Events
Hooks for synchronization and state monitoring.
// 1. StateChanged
// Fires when Start/Stop/Reset is called.
loader.StateChanged += (s, e) =>
{
Console.WriteLine($"Animation is now {(e.IsActive ? "Active" : "Idle")}");
};
// 2. CycleCompleted
// Fires when the arc finishes a full expand/contract sequence.
loader.CycleCompleted += (s, e) =>
{
Debug.WriteLine($"Completed Cycle #{e.CycleCount} in {e.ElapsedTime.TotalSeconds}s");
};
// 3. ProgressUpdated
// Fires every frame. Use sparingly for syncing other UI elements.
loader.ProgressUpdated += (s, e) =>
{
// Sync a label opacity to the expansion phase
lblStatus.Text = e.IsExpanding ? "Expanding..." : "Contracting...";
};
Visual Themes
The control ships with 20 premium themes.
| Theme | Description |
|---|---|
CosmicFusion |
Vibrant Pink, Purple, and Deep Blue gradient. |
AuroraBorealis |
Neon Green, Cyan, and Purple mix. |
TropicalSunset |
Warm Yellow, Orange, and Magenta tones. |
Cyberpunk |
High-contrast Yellow, Cyan, and Magenta. |
EmeraldWater |
Soothing Green, Teal, and Blue blend. |
RubyGold |
Luxurious Gold, Red, and Maroon. |
Designer Support
Extensive Smart Tag support allows for rapid prototyping without writing code.
| Feature Category | Capabilities |
|---|---|
Theme Shortcuts |
Instantly apply any of the 20+ preset themes directly from the designer menu. |
Animation Tuning |
Sliders/Inputs for Speed, Rotation, and Spring Constant to tweak the feel instantly. |
Actions |
Start/Stop/Reset: Preview the animation live in the Visual Studio designer view. |
Detailed Usage Examples
Example 1: Brand-Specific Gradient
Manually configuring a custom gradient to match brand colors.
private void SetupBrandLoader()
{
loader.Theme = ActivityIndicatorThemeAdv.Custom;
loader.UseGradient = true;
// Clear defaults and add brand colors
loader.GradientColors.Clear();
loader.GradientColors.Add(Color.FromArgb(255, 90, 0)); // Brand Orange
loader.GradientColors.Add(Color.FromArgb(255, 180, 0)); // Brand Yellow
// Adjust physics for a "heavy" feel
loader.StrokeWidth = 10;
loader.AnimationSpeed = 15; // Slower ticks
loader.SpringConstant = 0.02; // Less bouncy
loader.Start();
}
Example 2: Async Data Loading
Integrating the loader with an async/await workflow.
private async void BtnLogin_Click(object sender, EventArgs e)
{
// Show loader
loader.Visible = true;
loader.Start();
btnLogin.Enabled = false;
try
{
// Simulate network request
await Task.Delay(3000);
// await _authService.LoginAsync(...);
}
finally
{
// Hide loader
loader.Stop();
loader.Visible = false;
btnLogin.Enabled = true;
}
}