Beyond the basic TextBox, Checkbox and Dropdown controls, Beep.Skia ships pickers, search, switches and grouped selection controls. All of them are MaterialControl components, so they participate in theming, hit testing and the property grid.

Pickers

Color, date and time selection controls.

ColorPicker

A Material Design 3.0 color picker component

MemberKindDescription
SKColor SelectedColorPropertyGets or sets the selected color
float HuePropertyGets or sets the hue component (0-360)
float SaturationPropertyGets or sets the saturation component (0-1)
float ValuePropertyGets or sets the value/brightness component (0-1)
float AlphaPropertyGets or sets the alpha component (0-1)
bool ShowAlphaPropertyGets or sets whether to show the alpha slider
float ColorWheelRadiusPropertyGets or sets the color wheel radius
float BrightnessBarWidthPropertyGets or sets the brightness bar width
event EventHandler ColorChangedEventOccurs when the selected color changes
ColorPicker()MethodInitializes a new instance of the ColorPicker class

DatePicker

A Material Design 3.0 Date Picker component that allows users to select dates.

MemberKindDescription
event EventHandler<DateTime> DateSelectedEventOccurs when the selected date changes.
event EventHandler DialogOpenedEventOccurs when the date picker dialog opens.
event EventHandler DialogClosedEventOccurs when the date picker dialog closes.
DateTime SelectedDatePropertyGets or sets the currently selected date.
string DateFormatPropertyGets or sets the date format string.
new SKColor TextColorPropertyGets or sets the text color.
SKColor AccentColorPropertyGets or sets the accent color for selected dates.
bool ShowTodayButtonPropertyGets or sets whether to show the "Today" button.
DateTime? MinDatePropertyGets or sets the minimum selectable date.
DateTime? MaxDatePropertyGets or sets the maximum selectable date.
DatePicker()MethodInitializes a new instance of the DatePicker class.
DatePicker(float width, float height) : this()MethodInitializes a new instance of the DatePicker class with specified dimensions. The width of the date picker. The height of the date picker.
void ToggleCalendar()MethodToggles the calendar dialog visibility.
void OpenCalendar()MethodOpens the calendar dialog.
void CloseCalendar()MethodCloses the calendar dialog.

TimePicker

A Material Design 3.0 Time Picker component that allows users to select times.

MemberKindDescription
event EventHandler<DateTime> TimeSelectedEventOccurs when the selected time changes.
event EventHandler DialogOpenedEventOccurs when the time picker dialog opens.
event EventHandler DialogClosedEventOccurs when the time picker dialog closes.
DateTime SelectedTimePropertyGets or sets the currently selected time.
bool Use24HourFormatPropertyGets or sets whether to use 24-hour format.
new SKColor TextColorPropertyGets or sets the text color.
SKColor AccentColorPropertyGets or sets the accent color for selected times.
TimePickerMode ModePropertyGets or sets the time picker mode.
TimePicker()MethodInitializes a new instance of the TimePicker class.
TimePicker(float width, float height) : this()MethodInitializes a new instance of the TimePicker class with specified dimensions. The width of the time picker. The height of the time picker.
void ToggleTimePicker()MethodToggles the time picker dialog visibility.
void OpenTimePicker()MethodOpens the time picker dialog.
void CloseTimePicker()MethodCloses the time picker dialog.

Toggles and Progress

Switch, spinner and progress indicators.

Switch

A Material Design 3.0 Switch component that provides a toggle between on and off states.

MemberKindDescription
new event EventHandler<SwitchStateChangedEventArgs> StateChangedPropertyOccurs when the switch state changes.
bool IsCheckedPropertyGets or sets whether the switch is in the checked (on) state.
bool IsHoveredPropertyGets or sets whether the switch is hovered.
bool IsPressedPropertyGets or sets whether the switch is pressed.
Switch()MethodInitializes a new instance of the Switch class.
void Toggle()MethodToggles the switch state.

Spinner

A spinner component for indicating loading or processing.

MemberKindDescription
SpinnerStyle StylePropertyGets or sets the spinner style.
SKColor ColorPropertyGets or sets the spinner color.
float ThicknessPropertyGets or sets the thickness of the spinner lines.
int SegmentsPropertyGets or sets the number of segments in the spinner.
float SpeedPropertyGets or sets the rotation speed in degrees per frame.
Spinner()MethodInitializes a new instance of the Spinner class.
void Start()MethodStarts the spinner animation.
void Stop()MethodStops the spinner animation.

ProgressBar

A Material Design 3.0 progress bar component.

MemberKindDescription
float ProgressPropertyGets or sets the progress value (0.0 to 1.0).
bool IsIndeterminatePropertyGets or sets whether the progress bar is in indeterminate state.
ProgressBarVariant VariantPropertyGets or sets the progress bar variant.
float StrokeWidthPropertyGets or sets the stroke width for the progress bar.
SKColor ProgressColorPropertyGets or sets the progress color.
SKColor TrackColorPropertyGets or sets the track color.
ProgressBar()MethodInitializes a new instance of the ProgressBar class.
ProgressBar(float width, float height) : this()MethodInitializes a new instance of the ProgressBar class with specified dimensions.
void SetProgressPercent(float percent)MethodSets the progress as a percentage (0-100).

Text Input

Multi-line text input.

TextArea

A multi-line text input control.

MemberKindDescription
string TextPropertyGets or sets the text in the text area.
string PlaceholderPropertyGets or sets the placeholder text.
TextAlignment TextAlignmentPropertyGets or sets the text alignment.
bool MultilinePropertyGets or sets whether the text area supports multiple lines.
bool ReadOnlyPropertyGets or sets whether the text area is read-only.
int MaxLengthPropertyGets or sets the maximum length of text.
TextArea()MethodInitializes a new instance of the TextArea class.

Grouped Choices

Checkbox, radio and segmented button groups.

CheckBoxGroup

A group of check box controls.

MemberKindDescription
CheckBoxGroupItemCollection ItemsPropertyGets the collection of items in the check box group.
CheckBoxGroupStyle StylePropertyGets or sets the style of the check box group.
Orientation OrientationPropertyGets or sets the orientation of the check box group.
BorderStyle BorderStylePropertyGets or sets the border style of the check box group.
int ItemHeightPropertyGets or sets the height of each item.
int SpacingPropertyGets or sets the spacing between items.
CheckBoxGroup()MethodInitializes a new instance of the CheckBoxGroup class.

RadioGroup

A group of radio button controls where only one can be selected at a time.

MemberKindDescription
RadioGroupItemCollection ItemsPropertyGets the collection of items in the radio group.
RadioGroupStyle StylePropertyGets or sets the style of the radio group.
Orientation OrientationPropertyGets or sets the orientation of the radio group.
BorderStyle BorderStylePropertyGets or sets the border style of the radio group.
int ItemHeightPropertyGets or sets the height of each item.
int SpacingPropertyGets or sets the spacing between items.
RadioGroupItem SelectedItemPropertyGets or sets the selected item.
RadioGroup()MethodInitializes a new instance of the RadioGroup class.

SegmentedButtons

A Material Design 3.0 Segmented Buttons component that allows users to select one or more options from a set.

MemberKindDescription
SegmentedButtonSelectionMode SelectionModePropertyGets or sets the selection mode for the segmented buttons.
SKColor BackgroundColorPropertyGets or sets the background color of the segmented buttons container.
SKColor SelectedBackgroundColorPropertyGets or sets the background color for selected segments.
SKColor DividerColorPropertyGets or sets the color of the dividers between segments.
SKColor SelectedTextColorPropertyGets or sets the text color for selected segments.
SKColor UnselectedTextColorPropertyGets or sets the text color for unselected segments.
float CornerRadiusPropertyGets or sets the corner radius of the segmented buttons container.
float DividerWidthPropertyGets or sets the width of the dividers between segments.
float SegmentHeightPropertyGets or sets the height of each segment.
bool ShowDividersPropertyGets or sets whether to show dividers between segments.
IReadOnlyList<SegmentedButtonItem> ItemsPropertyGets the collection of segments in the segmented buttons control.
IEnumerable<int> SelectedIndicesPropertyGets the indices of currently selected segments.
event EventHandler<SelectionChangedEventArgs> SelectionChangedEventOccurs when the selection changes.
SegmentedButtons()MethodInitializes a new instance of the SegmentedButtons class.
SegmentedButtonItem AddSegment(string text, string icon = null)MethodAdds a new segment to the segmented buttons control. The text to display on the segment. The icon for the segment (optional). The created SegmentedButtonItem.
bool RemoveSegment(SegmentedButtonItem item)MethodRemoves a segment from the segmented buttons control. The segment to remove. True if the segment was removed successfully.
bool RemoveSegmentAt(int index)MethodRemoves a segment at the specified index. The index of the segment to remove. True if the segment was removed successfully.
void ClearSegments()MethodClears all segments from the segmented buttons control.
void SelectSegment(int index)MethodSelects a segment at the specified index. The index of the segment to select.
void DeselectSegment(int index)MethodDeselects a segment at the specified index. The index of the segment to deselect.
void ToggleSegment(int index)MethodToggles the selection state of a segment at the specified index. The index of the segment to toggle.
static SegmentedButtons Create(params string[] segments)MethodCreates a new SegmentedButtons instance with the specified segments. The text for each segment. A new SegmentedButtons instance.
static SegmentedButtons CreateSingleSelect(params string[] segments)MethodCreates a new SegmentedButtons instance with single selection mode. The text for each segment. A new SegmentedButtons instance.
static SegmentedButtons CreateMultiSelect(params string[] segments)MethodCreates a new SegmentedButtons instance with multiple selection mode. The text for each segment. A new SegmentedButtons instance.