Siticone Material CheckBox
The SiticoneMaterialCheckBox is a stylish and interactive checkbox control that follows Material Design guidelines.
It features a smooth drawing animation for the checkmark, an expanding ripple effect on click, and comprehensive state management including Indeterminate (ThreeState) support.
Visual Appearance
Customize the colors for every state of the checkbox to match your application's theme perfectly.
| Property | Type | Description |
|---|---|---|
ActiveCheckboxColor |
Color | The background fill color when the checkbox is checked (Default: Blue). |
IdleCheckboxBorderColor |
Color | The border color when the checkbox is unchecked. |
CheckMarkColor |
Color | The color of the checkmark tick or indeterminate dash. |
TextColor |
Color | The color of the label text associated with the checkbox. |
DisabledColor |
Color | The color used for border and text when Enabled is false. |
ReadOnlyColor |
Color | The color used when ReadOnly is true. |
Dimensions & Layout
Control the size, spacing, and stroke width of the checkbox elements.
| Property | Type | Description |
|---|---|---|
CheckBoxSize |
int | The width and height of the square box (Default: 18). |
CornerRadius |
int | The roundness of the checkbox corners. Set to 0 for sharp corners, or higher for rounded/circular looks. |
BorderSize |
int | The thickness of the box border when unchecked. |
CheckMarkThickness |
float | The thickness of the checkmark stroke inside the box. |
LeftPadding |
int | The margin between the left edge of the control and the checkbox. |
Ripple & Animation
Configure the signature Material Design ripple effect and other animations.
| Property | Type | Description |
|---|---|---|
EnableRippleEffect |
bool | Enables the expanding circular animation on click. |
RippleExpansionFactor |
float | Determines how large the ripple grows relative to the checkbox size (e.g., 2.5x). |
CheckingRippleColor |
Color | The ripple color used when transitioning to the Checked state. |
UncheckingRippleColor |
Color | The ripple color used when transitioning to the Unchecked state. |
AnimationDuration |
int | The duration (ms) of the checkmark drawing animation. |
Behavior & Interaction
Manage state, interactivity, and feedback.
| Property | Type | Description |
|---|---|---|
Checked |
bool | Gets or sets whether the checkbox is checked. |
ThreeState |
bool | If true, the checkbox can cycle through Checked, Unchecked, and Indeterminate states. |
CheckState |
CheckState | The current state (Unchecked, Checked, Indeterminate). |
ReadOnly |
bool | Prevents the user from changing the state while keeping the control enabled. |
CanShake |
bool | If true, the control shakes when clicked in ReadOnly mode. |
UltraFastMode |
bool | Disables animations for maximum performance in data-heavy lists. |
Events
Events for state changes and interactions.
// Fired when the Checked property changes.
matCheck.CheckedChanged += (s, e) =>
{
if (matCheck.Checked)
{
EnableOptions();
}
};
// Fired when the CheckState changes (useful for ThreeState logic).
matCheck.CheckStateChanged += (s, e) =>
{
// e.CheckState contains the new state
if (e.CheckState == CheckState.Indeterminate)
{
HandlePartialSelection();
}
};
// Fired when a user tries to click a ReadOnly checkbox.
matCheck.ReadOnlyInteractionAttempted += (s, e) =>
{
MessageBox.Show("This setting is controlled by admin policies.");
};
Designer Support
Includes a Smart Tag menu for quick configuration.
| Category | Features |
|---|---|
Themes |
Apply presets: Light, Dark, Material Blue, Green, Orange, Red, Purple. |
Animation |
Presets for Fast, Normal, and Slow animations. Toggle ripple effect. |
Corner Radius |
Presets for Square, Rounded, and Circular shapes. |
Settings |
Copy/Paste styles between controls. |
Usage Examples
Example 1: Standard Material Checkbox
A standard setup with Material Blue colors.
private void SetupMaterialCheckbox()
{
matCheck.Text = "Accept Terms";
// Apply Blue Theme
matCheck.ActiveCheckboxColor = Color.FromArgb(33, 150, 243);
matCheck.CheckingRippleColor = Color.FromArgb(33, 150, 243);
// Standard Radius
matCheck.CornerRadius = 4;
}
Example 2: Three-State "Select All"
Handling a "Select All" checkbox with an Indeterminate state.
private void SetupSelectAll()
{
chkAll.ThreeState = true;
chkAll.Text = "Select All";
// Customize Indeterminate Dash
chkAll.CheckMarkThickness = 3.0f;
}
private void UpdateMasterCheck(int selectedCount, int totalCount)
{
if (selectedCount == 0) chkAll.CheckState = CheckState.Unchecked;
else if (selectedCount == totalCount) chkAll.CheckState = CheckState.Checked;
else chkAll.CheckState = CheckState.Indeterminate;
}
Example 3: Circular Checkbox (Radio Style)
Making the checkbox round to mimic a radio button or selection dot.
private void SetupCircleCheckbox()
{
chkCircle.CheckBoxSize = 20;
chkCircle.CornerRadius = 10; // Half of size = Circle
// Green Theme
chkCircle.ActiveCheckboxColor = Color.FromArgb(76, 175, 80);
chkCircle.CheckingRippleColor = Color.FromArgb(76, 175, 80);
}
Example 4: High Performance Grid
Configuring for speed when displaying many checkboxes in a list.
private void ConfigureGridItem(SiticoneMaterialCheckBox chk)
{
chk.UltraFastMode = true; // Disables animations
chk.EnableRippleEffect = false;
// Simple look
chk.CornerRadius = 2;
chk.BorderSize = 1;
}