Siticone Logo
Siticone UI
DOCS
v2025.12.15
Docs Radial Button

Siticone Radial Button

The SiticoneRadialButton is a strict-circular button control engineered for high-impact UI elements. It extends standard button capabilities with particle explosions, glow animations, long-press gestures, and OS theme awareness. Ideal for Floating Action Buttons (FAB), media controls, and primary call-to-action triggers.

Colors & Styling

Configure visual attributes including gradients, borders, and state-specific colors.

Property Type Description & Usage Example
BaseColor Color btn.BaseColor = Color.FromArgb(94, 148, 255); The primary background color in the normal state.
HoverColor Color btn.HoverColor = Color.FromArgb(114, 168, 255); The background color when hovered.
PressedColor Color btn.PressedColor = Color.FromArgb(74, 128, 235); The background color when pressed.
TextColor Color btn.TextColor = Color.White;
HoverTextColor Color btn.HoverTextColor = Color.Yellow;
DisabledTextColor Color btn.DisabledTextColor = Color.Gray;
BorderColor Color btn.BorderColor = Color.White;
BorderWidth int btn.BorderWidth = 2;
GradientBackground bool btn.GradientBackground = true; Enables gradient rendering for the background.
GradientColor Color btn.GradientColor = Color.Cyan;
GradientMode LinearGradientMode btn.GradientMode = LinearGradientMode.ForwardDiagonal;

Visual Effects & Animation

Control sophisticated visual feedback including particles, ripples, glowing, and shaking.

Property Type Description & Usage Example
EnableRippleEffect bool btn.EnableRippleEffect = true; Enables the Material Design expanding circular wave on click.
RippleColor Color btn.RippleColor = Color.White;
RippleOpacity float btn.RippleOpacity = 0.3f;
RippleRadiusMultiplier float btn.RippleRadiusMultiplier = 0.8f; Controls the max size of the ripple relative to the button size.
UseParticles bool btn.UseParticles = true; If true, emits small particle sparks when clicked.
ParticleCount int btn.ParticleCount = 20;
ParticleColor Color btn.ParticleColor = Color.Gold;
CanGlow bool btn.CanGlow = true; Enables a pulsating outer glow when hovered.
GlowColor Color btn.GlowColor = Color.Cyan;
GlowIntensity int btn.GlowIntensity = 150;
CanShake bool btn.CanShake = true; Automatically shakes the button if clicked while in IsReadOnly mode.
EnableShadow bool btn.EnableShadow = true;
ShadowColor Color btn.ShadowColor = Color.Black;
ShadowBlur int btn.ShadowBlur = 10;

Interaction & State

Manage how users interact with the button, including toggle states, long-press detection, and read-only modes.

Property Type Description & Usage Example
IsToggleButton bool btn.IsToggleButton = true; Enables binary state (On/Off) switching on click.
IsToggled bool if (btn.IsToggled) { ... } Gets or sets the current toggle state.
EnableLongPress bool btn.EnableLongPress = true; Enables the LongPressed event.
LongPressDurationMS int btn.LongPressDurationMS = 1000; Time in milliseconds to trigger a long press.
IsReadOnly bool btn.IsReadOnly = true; Makes the button visible but non-interactive. Triggers ReadOnlyInteraction instead of Click.
DialogResult DialogResult btn.DialogResult = DialogResult.OK;

Content & Typography

Settings for text, images, and notification badges.

Property Type Description & Usage Example
ButtonImage Image btn.ButtonImage = Properties.Resources.icon;
ImageSize Size btn.ImageSize = new Size(32, 32);
BadgeText string btn.BadgeText = "3"; Displays a notification badge overlaid on the button.
BadgeColor Color btn.BadgeColor = Color.Red;
BadgeTextColor Color btn.BadgeTextColor = Color.White;
AutoSizeBasedOnText bool btn.AutoSizeBasedOnText = true;
EnableTextWrapping bool btn.EnableTextWrapping = true;
HintText string btn.HintText = "Click to save"; Sets a tooltip message.

Theme & System

Advanced integration with system themes and OS settings.

Property Type Description & Usage Example
IsSystemThemeMonitoringEnabled bool btn.IsSystemThemeMonitoringEnabled = true; If true, automatically detects Windows Theme changes (Light/Dark) and fires SystemThemeChanged.
CurrentSystemTheme ThemeMode var theme = btn.CurrentSystemTheme; Read-only property indicating the detected OS theme.
UseAdvancedRendering bool btn.UseAdvancedRendering = true; Enables high-quality anti-aliasing and interpolation. Disable for performance on older hardware.

Public Methods

PerformClick()
// Programmatically triggers a click event on the button.
radialButton1.PerformClick();
StartShaking() / StopShaking()
// Manually triggers the shake animation (e.g., for validation error).
radialButton1.StartShaking();

// Immediately stops any active shake animation.
radialButton1.StopShaking();

Events

Key events for handling custom logic.

Event Description
LongPressed Fires when the left mouse button is held down for LongPressDurationMS.
ToggleChanged Fires when IsToggled changes state.
SystemThemeChanged Fires when the OS theme (Light/Dark) changes. Requires monitoring enabled.
ReadOnlyInteraction Fires when the button is clicked while IsReadOnly is true. Useful for showing "Locked" messages.
AnimationEffectStarted Fires when a visual effect (Ripple, Particle) begins.

Detailed Usage Examples

Example 1: The "Level Up" Gaming Button

A high-impact button that combines particle effects, glows, and gradients to reward user interaction.

C# - High Impact Button
var btn = new SiticoneRadialButton();
btn.Text = "LEVEL UP";
btn.Font = new Font("Segoe UI", 12f, FontStyle.Bold);
btn.Size = new Size(120, 120);

// 1. Particle Explosion
btn.UseParticles = true;
btn.ParticleCount = 40; // Dense explosion
btn.ParticleColor = Color.Gold;

// 2. Dynamic Glow
btn.CanGlow = true;
btn.GlowColor = Color.Orange;
btn.GlowIntensity = 200;
btn.GlowRadius = 30f;

// 3. Gradient Styling
btn.GradientBackground = true;
btn.BaseColor = Color.OrangeRed;
btn.GradientColor = Color.Yellow;
btn.GradientMode = LinearGradientMode.ForwardDiagonal;

// 4. Sound Feedback
btn.CanBeep = false; // Disable default beep to play custom sound in Click event

Example 2: Media Player Toggle (Play/Pause)

Uses the toggle functionality to switch icons and logic between Play and Pause states.

C# - Media Toggle
private void SetupMediaControl()
{
    var btnPlay = new SiticoneRadialButton();
    btnPlay.Size = new Size(64, 64);
    
                // Enable Toggle Mode
    btnPlay.IsToggleButton = true;
    
                // Initial State (Play)
    btnPlay.ButtonImage = Properties.Resources.PlayIcon;
    btnPlay.BaseColor = Color.DodgerBlue;
    
                // Event Handling
    btnPlay.ToggleChanged += (s, e) => 
    {
                if (btnPlay.IsToggled)
        {
                // Playing State
            btnPlay.ButtonImage = Properties.Resources.PauseIcon;
            btnPlay.PressedColor = Color.Navy; // Visual feedback for active state
                StartPlayback();
        }
                else
        {
                // Paused State
            btnPlay.ButtonImage = Properties.Resources.PlayIcon;
                PausePlayback();
        }
    };
}

Example 3: "Smart" Floating Action Button (FAB)

A modern FAB that sits in the corner, displays a notification badge, and uses shadows for elevation.

C# - FAB with Badge
var fab = new SiticoneRadialButton();
fab.Size = new Size(56, 56); // Standard FAB size
fab.ButtonImage = Properties.Resources.PlusIcon;
fab.BaseColor = Color.FromArgb(0, 120, 215);

// Elevation (Shadow)
fab.EnableShadow = true;
fab.ShadowColor = Color.FromArgb(60, 0, 0, 0);
fab.ShadowBlur = 10;
fab.ShadowOffset = new Point(0, 4);

// Notification Badge
fab.BadgeText = "5";
fab.BadgeColor = Color.Crimson;
fab.BadgeTextColor = Color.White;
fab.BadgeFont = new Font("Arial", 9f, FontStyle.Bold);

// Anchor to bottom-right
fab.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
fab.Location = new Point(this.ClientSize.Width - 80, this.ClientSize.Height - 80);

Example 4: Secure "Long-Press" Action

Uses the LongPress event for critical actions (like deleting items) to prevent accidental clicks.

C# - Long Press Delete
var btnDelete = new SiticoneRadialButton();
btnDelete.Text = "HOLD";
btnDelete.BaseColor = Color.IndianRed;

// Configure Long Press
btnDelete.EnableLongPress = true;
btnDelete.LongPressDurationMS = 1500; // 1.5 Seconds

// Provide feedback on simple click (to guide user)
btnDelete.Click += (s, e) => 
{
                MessageBox.Show("Hold the button to delete.");
    btnDelete.StartShaking(); // Visual cue that click failed
};

// Execute actual logic on Long Press
btnDelete.LongPressed += (s, e) => 
{
                DeleteItem();
                // Visual feedback for success
    btnDelete.UseParticles = true;
    btnDelete.PerformClick(); // Trigger particles
};

Example 5: OS-Theme Adaptive Control

A button that automatically monitors Windows System Theme settings and switches between Light and Dark modes.

C# - Theme Aware
private void InitializeThemeButton()
{
    var btn = new SiticoneRadialButton();
    btn.Text = "Theme Auto";
    
                // Enable monitoring
    btn.IsSystemThemeMonitoringEnabled = true;
    
                // Handle changes
    btn.SystemThemeChanged += (s, e) => 
    {
                if (e.SystemTheme == ThemeMode.Dark)
        {
                // Dark Mode Styles
            btn.BaseColor = Color.FromArgb(45, 45, 48);
            btn.TextColor = Color.FromArgb(240, 240, 240);
            btn.BorderColor = Color.FromArgb(80, 80, 80);
            btn.HoverColor = Color.FromArgb(60, 60, 60);
        }
                else
        {
                // Light Mode Styles
            btn.BaseColor = Color.WhiteSmoke;
            btn.TextColor = Color.Black;
            btn.BorderColor = Color.LightGray;
            btn.HoverColor = Color.White;
        }
    };
    
                // Force initial update
    btn.IsSystemThemeMonitoringEnabled = true; 
}