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
// Programmatically triggers a click event on the button.
radialButton1.PerformClick();
// 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.
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.
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.
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.
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.
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;
}