Siticone Logo
Siticone UI
DOCS
v2025.12.15
Docs Loading Spinner

Siticone Loading Spinner

The SiticoneLoadingSpinner is a highly advanced, customizable waiting indicator. It goes far beyond standard spinners by offering particle effects, shockwaves, trail rendering, concentric rings, and built-in asynchronous task management.

Core & Animation

Essential properties to control the spinner's movement and basic appearance.

Property Type Description & Usage Example
IsRunning bool spinner.IsRunning = true; Starts or stops the animation loop. Set to false to pause.
RotationSpeed int spinner.RotationSpeed = 60; Speed factor (1-100). Higher values result in faster rotation.
NumberOfSpokes int spinner.NumberOfSpokes = 12; The number of lines (spokes) that make up the circle.
SpokeThickness int spinner.SpokeThickness = 4; The width of each spoke in pixels.
InnerCircleRadius int spinner.InnerCircleRadius = 10; The inner radius of the spoke ring.
OuterCircleRadius int spinner.OuterCircleRadius = 25; The outer radius of the spoke ring (overall size).

Advanced Visual Effects

Unlock stunning visuals with particle systems, trails, and glow effects.

Property Type Description & Usage Example
ParticleEffects bool spinner.ParticleEffects = true; Emits small particles from the spinner center. Configurable via MaxParticles and ParticleSpeed.
SpokeTrails bool spinner.SpokeTrails = true; Creates a trailing "ghost" effect behind moving spokes. Adjust length with TrailLength.
ShockwaveEffect bool spinner.ShockwaveEffect = true; Emits expanding concentric rings periodically from the center.
GlowEffect bool spinner.GlowEffect = true; Adds a soft luminous glow around the entire spinner.
PulseEffect bool spinner.PulseEffect = true; Makes the entire spinner grow and shrink rhythmically.
GradientEnabled bool spinner.GradientEnabled = true; Applies a gradient fill to the spokes using SpinnerColor and GradientColor.

Async Task Integration

Helper methods to easily bind the spinner to background operations.

C# - BackgroundWorker
// Run a task in the background. The spinner automatically starts 
// and stops when the work is complete.
spinner.RunWorkerAsync((s, e) => 
{
                // Perform heavy work here (on background thread)
                Thread.Sleep(3000); 
    
                // Report progress if needed
                // ((BackgroundWorker)s).ReportProgress(50);
});
C# - Async/Await Task
// Modern async/await pattern integration
spinner.RunWorkerAsync(async (progress, token) => 
{
                for (int i = 0; i <= 100; i+=10)
    {
                if (token.IsCancellationRequested) break;
        
                await Task.Delay(200);
        
                // Update progress (thread-safe)
        progress.Report(i / 100.0); 
    }
});

Designer & Smart Tags

The SiticoneLoadingSpinner includes a rich Smart Tag menu for rapid configuration.

Feature Category Capabilities
Style Presets Instantly apply complex configurations:
  • Concentric Style: Multiple rotating rings.
  • Particle Style: Emits particles with glow.
  • Trail Style: Motion blur trails behind spokes.
Theme Presets Quickly set colors: Light, Dark, Blue, Green, Red, Orange, Purple, Gray.
Control Actions Start / Stop / Reset: Test animations directly in the designer.
Settings Copy/Paste Settings: Transfer configurations between multiple spinners.

Detailed Usage Examples

Example 1: Concentric Rings Loader

Creating a complex, multi-ring spinner for a high-tech look.

C# - Concentric Setup
private void SetupTechLoader()
{
                // Use the extension method for quick setup
    techSpinner.UseConcentricStyle();
    
                // Customize further
    techSpinner.SpinnerColor = Color.Cyan;
    techSpinner.NumberOfRings = 3;
    techSpinner.RotationSpeed = 80;
    techSpinner.GlowEffect = true;
    techSpinner.GlowIntensity = 15;
    
    techSpinner.Start();
}

Example 2: Data Processing with Progress

Showing percentage text inside the spinner during an operation.

C# - Progress Text
private void SetupProgressLoader()
{
    dataSpinner.ShowProgressText = true;
    dataSpinner.ProgressTextColor = Color.Black;
    dataSpinner.ProgressFont = new Font("Segoe UI", 10, FontStyle.Bold);
    
                // Use Progressive mode to fill spokes based on %
    dataSpinner.UseProgressiveMode = true;
    dataSpinner.SpinnerColor = Color.ForestGreen;
    
                // Hook up event
    dataSpinner.ProgressChanged += (s, e) => 
    {
                if (e.ProgressPercentage >= 100)
                MessageBox.Show("Data Loaded!");
    };
}

Example 3: Performance Mode

Optimizing for low-end devices or high-load scenarios.

C# - Ultra Fast Mode
private void OptimizeForPerformance()
{
                // Disables Glow, Particles, Trails, and Shockwaves
                // Switches to a highly optimized rendering path
    fastSpinner.UltraFastMode = true;
    
                // Simple, clean rotation
    fastSpinner.NumberOfSpokes = 12;
    fastSpinner.SpokeThickness = 4;
    fastSpinner.RotationSpeed = 60;
    fastSpinner.Start();
}