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.
// 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);
});
// 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:
|
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.
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.
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.
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();
}