Blazor - Get Started with Smart.ToggleButton
Setup The Project
Follow the Getting Started guide to set up your Blazor Application with Smart UI.
Setup Basic ToggleButton
Smart.ToggleButton is a custom element that can be toggled On and Off. It is typically used in a group of other ToggleButtons
- Add the ToggleButton component to the Pages/Index.razor file
<ToggleButton></ToggleButton>
- Optionally, set the name, value and check state of the ToggleButton:
<ToggleButton Checked="true" Name="toggle" Value="enabled">Toggle</ToggleButton>
Check Mode
Check Mode determines the necessary action to change the state of the element.
When CheckMode is set to Press - its state is changed when pressing the button.
When it is Hover - it is changed by hovering over the button.
<ToggleButton Checked="true" Name="dark-theme" Value="enabled" ToggleMode="ToggleButtonToggleMode.Drag"></ToggleButton>
ToggleButton Events
Smart.ToggleButton provides multiple events that can help you expand the component's functionality.
Each event object has unique event.detail parameters.
OnChange- triggered when the widget is checked/unchecked.
Event Details: dynamic value, dynamic oldValue, dynamic changeTypeOnCheckValue- triggered when the component is checked.
Event Details: dynamic changeTypeOnUncheckValue- triggered when the component is unchecked.
Event Details: dynamic changeType
The demo below uses the OnChange Event to apply custom CSS to an element:
<style>
h3{
font-weight: @boldness;
text-decoration: @underline;
font-style: @italics;
}
</style>
<ToggleButton @ref="@boldBtn" OnChange="Bold">Bold</ToggleButton>
<ToggleButton @ref="@underlineBtn" OnChange="Underline">Underline</ToggleButton>
<ToggleButton @ref="@italicsBtn" OnChange="Italics">Italics</ToggleButton>
<h3>Some text</h3>
@code{
ToggleButton boldBtn;
ToggleButton underlineBtn;
ToggleButton italicsBtn;
string boldness = "400";
string underline = "none";
string italics = "normal";
private void Bold(Event ev){
ToggleButtonChangeEventDetail detail = ev["Detail"];
if(boldBtn.Checked){
boldness = "bold";
}
else{
boldness = "400";
}
}
private void Underline(Event ev){
ToggleButtonChangeEventDetail detail = ev["Detail"];
if(underlineBtn.Checked){
underline = "underline";
}
else{
underline = "none";
}
}
private void Italics(Event ev){
ToggleButtonChangeEventDetail detail = ev["Detail"];
if(italicsBtn.Checked){
italics = "italic";
}
else{
italics = "normal";
}
}
}
Two-way Value Binding
The ToggleButton component also supports two-way value binding:
<ToggleButton @bind-Checked="@toggleValue">Bold</ToggleButton>
<h3>@toggleValue</h3>
@code{
bool toggleValue = true;
}