Siticone Logo
Siticone UI
DOCS
v2025.12.15
Docs Text Button

Siticone Text Button

The SiticoneTextButton control provides an elegant, text-centric interactive element designed for minimalistic interfaces. Unlike standard buttons that emphasize borders and backgrounds, this control focuses on typography, hyperlinks, and subtle animations.

It is ideal for navigation menus, hyperlink-style interactions, and "flat" design systems. It supports advanced features like particle effects, dynamic glowing, text transformations, and system theme monitoring.

Text Styling & Typography

Control the font, alignment, underline styles, and text transformations.

Property Type Description & Usage Example
ShowUnderline bool btn.ShowUnderline = false; Determines whether an underline is shown in the normal state.
HoverShowUnderline bool btn.HoverShowUnderline = true; If true, the underline appears smoothly when the mouse hovers over the text.
UnderlineColor Color btn.UnderlineColor = Color.Blue;
UnderlineHeight int btn.UnderlineHeight = 1;
UnderlineStyle Enum btn.UnderlineStyle = TextButtonUnderlineStyle.Dashed; Options: Solid, Dashed, Dotted.
TextTransform Enum btn.TextTransform = TextButtonTextTransform.Uppercase; Visual text transformation. Options: None, Uppercase, Lowercase, Capitalize.
TextColor Color btn.TextColor = Color.DimGray;
HoverTextColor Color btn.HoverTextColor = Color.Black;
DisabledTextColor Color btn.DisabledTextColor = Color.Gray;
ReadOnlyTextColor Color btn.ReadOnlyTextColor = Color.LightGray;
NormalFontStyle FontStyle btn.NormalFontStyle = FontStyle.Regular;
HoverFontStyle FontStyle btn.HoverFontStyle = FontStyle.Bold;
PressedFontStyle FontStyle btn.PressedFontStyle = FontStyle.Italic;
RightToLeft RightToLeft btn.RightToLeft = RightToLeft.Yes;
TextLeftPadding int btn.TextLeftPadding = 5;
TextRightPadding int btn.TextRightPadding = 5;
TextTopPadding int btn.TextTopPadding = 5;
TextBottomPadding int btn.TextBottomPadding = 5;
EnableTextWrapping bool btn.EnableTextWrapping = true; Enables text to wrap to multiple lines when it exceeds button width.
AutoSizeBasedOnText bool btn.AutoSizeBasedOnText = true; Automatically adjusts button size based on text content.

Visual Effects & Animation

Enable high-end visual feedback including particles, glowing, and material ripples.

Property Type Description & Usage Example
EnableRippleEffect bool btn.EnableRippleEffect = true; Toggles the Material Design-inspired ripple animation on click.
RippleColor Color btn.RippleColor = Color.FromArgb(100, 0, 0, 255);
RippleOpacity float btn.RippleOpacity = 0.3f; Controls the transparency of the ripple effect (0.0 to 1.0).
RippleRadiusMultiplier float btn.RippleRadiusMultiplier = 0.8f; Controls the max size of the ripple relative to the button diagonal.
CanGlow bool btn.CanGlow = true; Activates a dynamic, pulsating glow effect around the text on hover.
GlowColor Color btn.GlowColor = Color.Cyan;
GlowRadius float btn.GlowRadius = 20f;
GlowIntensity int btn.GlowIntensity = 100;
UseParticles bool btn.UseParticles = true; Explodes small particles from the click location for a gamified effect.
ParticleCount int btn.ParticleCount = 20;
ParticleColor Color btn.ParticleColor = Color.White;
EnablePressAnimation bool btn.EnablePressAnimation = true; Scales the button down slightly when pressed.
PressAnimationScale float btn.PressAnimationScale = 0.97f; Controls how much the button scales down when pressed.
EnableShadow bool btn.EnableShadow = true; Enables drop shadow effect for the button text.
ShadowColor Color btn.ShadowColor = Color.Black;
ShadowOffset Point btn.ShadowOffset = new Point(2, 2);
ShadowBlur int btn.ShadowBlur = 5;
UseAdvancedRendering bool btn.UseAdvancedRendering = true; Enables high-quality anti-aliasing and smooth rendering.
HoverTransitionDuration int btn.HoverTransitionDuration = 250; Duration of hover animation in milliseconds.
PressTransitionDuration int btn.PressTransitionDuration = 150; Duration of press animation in milliseconds.

Interaction & Behavior

Advanced interaction patterns like long-press detection and toggle states.

Property Type Description & Usage Example
IsToggleButton bool btn.IsToggleButton = true; Changes behavior to maintain an On/Off state.
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;
DialogResult DialogResult btn.DialogResult = DialogResult.OK;
IsReadOnly bool btn.IsReadOnly = true; Makes the button non-interactive but keeps it distinct from Disabled.
CanShake bool btn.CanShake = true; Shakes when clicked in ReadOnly mode.
CanBeep bool btn.CanBeep = true; Plays system beep when clicked in ReadOnly mode.
ShakeDuration int btn.ShakeDuration = 500;
ShakeIntensity int btn.ShakeIntensity = 5;
HintText string btn.HintText = "Additional information";
CustomCursor Cursor btn.CustomCursor = Cursors.Hand;
TooltipText string btn.TooltipText = "Click me!";
ContextMenuStripEx ContextMenuStrip btn.ContextMenuStripEx = myContextMenu;

Theming & Monitoring

Automatically adapt to the OS theme changes (Light/Dark mode).

Property Type Description
IsSystemThemeMonitoringEnabled bool Enables automatic detection of Windows system theme changes.
CurrentSystemTheme ThemeMode Gets the current detected theme (Light, Dark, or Custom).

Events

The control exposes several custom events to handle advanced interactions and state changes.

Events Usage
// 1. Long Press Event
textBtn.LongPressed += (s, e) => 
{
                MessageBox.Show("Additional Options Menu");
};

// 2. Toggle Changed
textBtn.ToggleChanged += (s, e) => 
{
                if (textBtn.IsToggled) 
                ActivateFeature();
                else 
                DeactivateFeature();
};

// 3. State Changed
textBtn.StateChanged += (s, e) => 
{
                Console.WriteLine($"State changed from {e.OldState} to {e.NewState}");
};

// 4. Animation Completed
textBtn.AnimationCompleted += (s, e) => 
{
                Console.WriteLine($"Animation {e.AnimationType} completed");
};

// 5. ReadOnly Interaction
textBtn.ReadOnlyInteraction += (s, e) =>
{
                if (e.Type == InteractionType.Click)
                Console.WriteLine("User clicked a locked button.");
};

// 6. Animation Effect Started
textBtn.AnimationEffectStarted += (s, e) =>
{
                Console.WriteLine($"Animation effect {e.EffectType} started at {e.Location}");
};

// 7. System Theme Changed
textBtn.SystemThemeChanged += (s, e) =>
{
                Debug.WriteLine($"System theme changed to: {e.SystemTheme}");
};

// 8. Theme Changed
textBtn.ThemeChanged += (s, e) =>
{
                Debug.WriteLine($"Theme changed from {e.OldTheme} to {e.NewTheme}");
};

Public Methods

Method Description
PerformClick() Simulates a click event on the button.
StartShaking() Manually triggers the shake animation sequence.
StopShaking() Immediately stops any active shake animation.

Enumerations

The control defines several enums for configuration and event handling.

ThemeMode

Value Description
Light Light theme mode
Dark Dark theme mode
Custom Custom theme (not following system)

AnimationType

Value Description
Hover Hover state animation
Press Press state animation
Release Release state animation
Ripple Ripple effect animation
Shake Shake animation
Glow Glow effect animation
Particle Particle effect animation
StateTransition State transition animation

InteractionType

Value Description
Click Standard click interaction
DoubleClick Double-click interaction
RightClick Right mouse button click
MiddleClick Middle mouse button click
Hover Mouse hover interaction
Leave Mouse leave interaction

ButtonState

Value Description
Normal Default button state
Hover Mouse is hovering over button
Pressed Button is being pressed
Disabled Button is disabled
ReadOnly Button is in read-only mode
Toggled Button is toggled on (for toggle buttons)

Usage Examples

Example 1: Hyperlink Style

Creates a button that behaves like a web hyperlink.

C# - Hyperlink
var linkBtn = new SiticoneTextButton();
linkBtn.Text = "Visit Website";
linkBtn.TextColor = Color.DodgerBlue;
linkBtn.HoverTextColor = Color.Blue;
linkBtn.Cursor = Cursors.Hand;

// Only show underline on hover
linkBtn.ShowUnderline = false;
linkBtn.HoverShowUnderline = true;
linkBtn.UnderlineColor = Color.Blue;

// Clean look
linkBtn.EnableShadow = false;
linkBtn.EnableRippleEffect = false;

Example 2: Interactive "Gamified" Button

A high-impact button with particles and glow effects.

C# - Gamified
var gameBtn = new SiticoneTextButton();
gameBtn.Text = "LEVEL UP";
gameBtn.Font = new Font("Segoe UI", 14f, FontStyle.Bold);
gameBtn.TextColor = Color.Gold;

// Enable Effects
gameBtn.CanGlow = true;
gameBtn.GlowColor = Color.Orange;
gameBtn.GlowIntensity = 200;

gameBtn.UseParticles = true;
gameBtn.ParticleCount = 30;
gameBtn.ParticleColor = Color.Yellow;

gameBtn.EnablePressAnimation = true;

Example 3: Toggle Button with State Management

A toggle button with visual feedback for different states.

C# - Toggle Button
var toggleBtn = new SiticoneTextButton();
toggleBtn.Text = "Toggle Feature";
toggleBtn.IsToggleButton = true;
toggleBtn.EnableRippleEffect = true;
toggleBtn.RippleColor = Color.Purple;

// Different colors for toggled state
toggleBtn.ToggleChanged += (s, e) => 
{
                if (toggleBtn.IsToggled) 
                {
                    toggleBtn.TextColor = Color.White;
                    toggleBtn.BackColor = Color.Purple;
                }
                else
                {
                    toggleBtn.TextColor = Color.Purple;
                    toggleBtn.BackColor = Color.Transparent;
                }
};