Siticone Logo
Siticone UI
DOCS
v2025.12.15
Docs Radio Button

Siticone Radio Button

The SiticoneRadioButton is a modernized version of the standard Windows Forms RadioButton. It provides two distinct display modes: a traditional circular selection style and a "Contained" mode that functions like a selectable card or button. It automatically handles grouping logic within its parent container, ensuring mutually exclusive selection.

Standard Mode

In its default state, the control renders a circular indicator next to the text label.

Property Type Description
Checked bool Indicates whether the radio button is selected. Setting this to true automatically deselects other radio buttons in the same container.
CircleSize int The diameter of the radio circle in pixels (Default: 20).
CheckedColor Color The color of the circle (both border and fill) when selected.
UncheckedColor Color The color of the circle border when not selected.

Contained Mode

By setting IsContained = true, the control transforms into a rectangular card. This is ideal for modern UIs like pricing plan selectors, shipping method choices, or wizard steps.

Property Type Description
IsContained bool Enables the container background rendering mode.
ContainerPadding int Space between the container border and the internal content (radio circle and text).
ContainerBackColor Color Background color of the container in its idle state.
ContainerCheckedColor Color Background color when the item is selected.
ContainerBorderWidth int Thickness of the container border.
CornerRadius... int Individual radius controls for TopLeft, TopRight, BottomLeft, and BottomRight corners.

Animations

The control features built-in animations for state changes and user interaction.

Property Type Description
EnableRipple bool Enables a Material Design-style ripple effect on click.
RippleColor Color Color of the ripple animation.
RippleStyle Enum Animation curve: Standard, Bounce, Elastic, Sharp, Smooth.
CanShake bool If ReadOnly, the control shakes when clicked to indicate it cannot be changed.

Events

Standard events for handling selection changes.

CheckedChanged Event
// Fired when the Checked state changes.
// Note: In a group, this fires for both the newly selected item (true)
// and the previously selected item (false).
optStandard.CheckedChanged += (s, e) => 
{
                if (optStandard.Checked)
    {
                ApplyStandardSettings();
    }
};

Designer Support

The control includes a comprehensive Smart Tag menu in Visual Studio.

Category Features
Themes One-click presets like Light, Dark, Material Blue, Contained Light, Accent Red, etc.
Layout Quick access to Container Padding, Border Width, and Corner Radius.
Settings Copy/Paste visual settings between multiple radio buttons.

Usage Examples

Example 1: Basic Radio Group

Standard selection group for a form.

C# - Basic Setup
private void SetupGenderSelection()
{
                // All SiticoneRadioButtons in the same parent container
                // automatically form a mutually exclusive group.
    
    rbMale.Text = "Male";
    rbFemale.Text = "Female";
    rbOther.Text = "Other";
    
                // Apply a consistent theme
    rbMale.CheckedColor = Color.DodgerBlue;
    rbFemale.CheckedColor = Color.DodgerBlue;
    rbOther.CheckedColor = Color.DodgerBlue;
}

Example 2: Payment Method Selection (Contained)

Using the "Contained" mode to create selectable cards for payment options.

C# - Card Selection
private void SetupPaymentOptions()
{
    rbCreditCard.IsContained = true;
    rbCreditCard.Text = "Credit Card";
    rbCreditCard.ContainerPadding = 10;
    rbCreditCard.ContainerBorderColor = Color.LightGray;
    
                // Highlight style when selected
    rbCreditCard.ContainerCheckedColor = Color.FromArgb(230, 240, 255); // Light Blue BG
    rbCreditCard.ContainerCheckedBorderColor = Color.DodgerBlue;
    
    rbPaypal.IsContained = true;
    rbPaypal.Text = "PayPal";
                // Copy styles from first button...
}

Example 3: Read-Only Status Display

Using radio buttons to display a fixed status that cannot be changed by the user.

C# - Status Display
private void ShowOrderStatus(int statusStep)
{
    rbStep1.IsReadOnly = true;
    rbStep2.IsReadOnly = true;
    rbStep3.IsReadOnly = true;
    
    rbStep1.Checked = (statusStep >= 1);
    rbStep2.Checked = (statusStep >= 2);
    rbStep3.Checked = (statusStep >= 3);
    
                // Enable shake feedback if user tries to click
    rbStep1.CanShake = true;
}

Example 4: Material Design Theme

Programmatically applying a Material Design look with ripples.

C# - Material Theme
private void ApplyMaterialStyle(SiticoneRadioButton rb)
{
    rb.CheckedColor = Color.FromArgb(33, 150, 243); // Material Blue
    rb.UncheckedColor = Color.FromArgb(117, 117, 117);
    
    rb.EnableRipple = true;
    rb.RippleColor = Color.FromArgb(40, 33, 150, 243);
    rb.RippleStyle = SiticoneRadioButton.RippleAnimationStyle.Smooth;
}