Siticone Logo
Siticone UI
DOCS
v2025.12.15
Docs Material Radio Button

Siticone Material Radio Button

The SiticoneMaterialRadioButton is a modern selection control that adheres to Material Design principles. Unlike standard radio buttons, it features fluid ripple animations, customizable styling (Filled vs. Outlined), and group management logic that works across parent containers.

Visual Styles

Choose between two distinct rendering modes for the radio button indicator.

Property Type Description
Style RadioButtonStyle
  • Filled: When selected, the circle fills completely with color (Default).
  • Outlined: When selected, only the border and a center dot are colored.
DotSizeRatio float Controls the size of the inner dot relative to the button size (0.1 to 0.9). Allows fine-tuning the "weight" of the selection indicator.

Grouping & Logic

The control includes advanced logic to handle mutually exclusive selection.

Property Type Description
GroupName string Assigns the button to a logical group. Radio buttons with the same GroupName will behave as a single exclusive set, even if they are in different parent containers.
Checked bool Gets or sets the selection state. Setting this to true automatically unchecks other buttons in the same group.

Colors & Appearance

Customize the color palette for every interaction state.

Property Type Description
ActiveRadioColor Color The primary color when the radio button is checked.
IdleRadioBorderColor Color The border color when the radio button is unchecked.
CheckMarkColor Color The color of the inner dot/checkmark (typically White for Filled style).
DisabledColor Color The color used when Enabled = false.
ReadOnlyColor Color The color used when ReadOnly = true.

Animation & Effects

Material Design ripple effects and smooth transitions.

Property Type Description
EnableRippleEffect bool Enables the expanding circular animation on click.
CheckingRippleColor Color The ripple color when selecting the button.
RippleSizeMultiplier int How large the ripple expands relative to the button size (e.g., 2x).
AnimationDuration int Duration of the check/uncheck animation in milliseconds.

Events

Rich event system for tracking state changes.

CheckedChanged Event
// Fired when the Checked state changes.
radioBtn.CheckedChanged += (s, e) => 
{
                if (radioBtn.Checked)
    {
                ApplyOption(radioBtn.Text);
    }
};
StateChanged Event
// Provides detailed information about the change event.
radioBtn.StateChanged += (s, e) => 
{
                Console.WriteLine($"Group: {e.GroupName}, Old: {e.OldState}, New: {e.NewState}");
};

Designer Support

Includes a Smart Tag menu with presets for rapid styling.

Category Features
Themes Presets like Light, Dark, Material Blue, Green, Red, Purple.
Styles Quickly switch between Filled and Outlined styles.
Dot Size Presets for Small, Medium, and Large indicator dots.

Usage Examples

Example 1: Gender Selection (Filled Style)

Standard use case with mutually exclusive options.

C# - Gender Selection
private void SetupGenderRadios()
{
                string group = "Gender";
    
    rbMale.GroupName = group;
    rbMale.Text = "Male";
    rbMale.Style = RadioButtonStyle.Filled;
    rbMale.ActiveRadioColor = Color.DodgerBlue;
    
    rbFemale.GroupName = group;
    rbFemale.Text = "Female";
    rbFemale.Style = RadioButtonStyle.Filled;
    rbFemale.ActiveRadioColor = Color.HotPink;
    
    rbOther.GroupName = group;
    rbOther.Text = "Other";
                // ... configure style
}

Example 2: Theme Selection (Outlined Style)

Using the outlined style for a cleaner look in a settings menu.

C# - Theme Options
private void SetupThemeOptions()
{
    rbLight.GroupName = "AppTheme";
    rbLight.Style = RadioButtonStyle.Outlined;
    rbLight.ActiveRadioColor = Color.Black; // Dark border when selected
    rbLight.CheckMarkColor = Color.Black;   // Dark dot
    
    rbDark.GroupName = "AppTheme";
    rbDark.Style = RadioButtonStyle.Outlined;
    rbDark.ActiveRadioColor = Color.White;
    rbDark.CheckMarkColor = Color.White;
}

Example 3: Read-Only Configuration

Displaying a selected option that cannot be changed by the user.

C# - ReadOnly
private void ShowCurrentPlan(string plan)
{
    rbFree.IsReadOnly = true;
    rbPro.IsReadOnly = true;
    
                if (plan == "Pro") rbPro.Checked = true;
                else rbFree.Checked = true;
    
                // Optional: Enable shake feedback
    rbFree.CanShake = true;
    rbPro.CanShake = true;
}