Siticone Dashboard Button Advanced
The SiticoneDashboardButtonAdvanced is a high-performance, highly configurable control designed for building modern application dashboards and navigation menus.
It goes beyond the standard dashboard button by offering gradient backgrounds, complex selection animations, image cross-fading, and a built-in performance mode for high-density UIs.
State & Grouping
Advanced selection logic and grouping capabilities for mutually exclusive buttons.
| Property | Type | Description & Usage Example |
|---|---|---|
IsSelected |
bool | btn.IsSelected = true; Determines if the button is currently active. Setting this triggers entry/exit animations for the background, text, and indicator. |
GroupName |
string | btn.GroupName = "SideMenu"; Assigns the button to a logical group. Only one button within the same parent container and group name can be selected at a time. |
Advanced Content & Images
Support for primary/secondary images with smooth cross-fade transitions on state changes.
| Property | Type | Description & Usage Example |
|---|---|---|
Image |
Image | btn.Image = Resources.Home_Gray; The default icon displayed in the normal state. |
HoverImage |
Image |
btn.HoverImage = Resources.Home_Blue;
The icon displayed on hover. The control smoothly cross-fades between Image and HoverImage.
|
SelectedImage |
Image | btn.SelectedImage = Resources.Home_White; The icon displayed when selected. Cross-fades from the previous state. |
ImageTransitionDurationMs |
int | btn.ImageTransitionDurationMs = 200; Duration of the image cross-fade animation. |
ImageSize |
int | btn.ImageSize = 24; |
Gradients & Borders
Create depth with gradient fills and customizable borders.
| Property | Type | Description & Usage Example |
|---|---|---|
UseGradientBackground |
bool | btn.UseGradientBackground = true; Enables gradient rendering for the background. |
GradientStartColor |
Color | btn.GradientStartColor = Color.Blue; |
GradientEndColor |
Color | btn.GradientEndColor = Color.Cyan; |
BorderThickness |
int | btn.BorderThickness = 1; |
BorderColor |
Color | btn.BorderColor = Color.Gray; |
HoverBorderColor |
Color | btn.HoverBorderColor = Color.LightBlue; |
Selection Indicator
A highly customizable vertical bar indicating the selected item.
| Property | Type | Description & Usage Example |
|---|---|---|
IndicatorSide |
IndicatorSides |
btn.IndicatorSide = IndicatorSides.Left;
Position of the indicator: Left or Right.
|
IndicatorWidth |
int | btn.IndicatorWidth = 4; Thickness of the indicator bar. |
IndicatorRadius |
int |
btn.IndicatorRadius = 2;
Applies via designer property IndicatorRadius which sets all 4 corners (TopLeft, TopRight, etc.) for a rounded bar.
|
Performance Mode
Optimization settings for high-density interfaces.
| Property | Type | Description & Usage Example |
|---|---|---|
UltraPerformance |
bool | btn.UltraPerformance = true; When enabled, all animations (ripples, fades, slides) are completely disabled. The control renders instantly based on state. Use this for lists with 50+ buttons to ensure smooth scrolling. |
Events
// SelectionChanging: Cancellable event before selection occurs.
btn.SelectionChanging += (s, e) =>
{
if (!CanNavigateAway) e.Cancel = true;
};
// SelectionChanged: Fired after selection state updates.
btn.SelectionChanged += (s, e) =>
{
Debug.WriteLine($"Button selected: {e.NewValue}");
};
// BadgeValueChanged: Fired when badge count updates.
btn.BadgeValueChanged += (s, e) =>
{
Debug.WriteLine($"Badge changed from {e.OldValue} to {e.NewValue}");
};
Designer Support
The control includes a Smart Tag panel for rapid configuration.
| Category | Features |
|---|---|
Theme Presets |
Access to 3 built-in theme presets: Default Blue (Standard), Graphite Dark (Dark Mode), Mint Light (Soft Colors). |
Quick Actions |
Toggle Selected State: Preview selection in designer. Configure/Hide Badge: Quickly add or remove the notification badge. Apply Corner Presets: Rounded, Left-Rounded, Right-Rounded, or Square. |
Utilities |
Copy/Paste Settings: Replicate styles across multiple instances. |
Detailed Examples
Example 1: Sidebar Menu with Icons
Setting up a navigation menu with image transitions.
public void InitializeSidebar()
{
var btnHome = new SiticoneDashboardButtonAdvanced
{
Text = "Home",
Image = Resources.Home_Gray,
HoverImage = Resources.Home_Blue,
SelectedImage = Resources.Home_White,
GroupName = "MainMenu",
IsSelected = true
};
var btnSettings = new SiticoneDashboardButtonAdvanced
{
Text = "Settings",
Image = Resources.Settings_Gray,
HoverImage = Resources.Settings_Blue,
SelectedImage = Resources.Settings_White,
GroupName = "MainMenu"
};
// Add to panel...
}
Example 2: Dynamic Notification Badge
Updating the badge based on application events.
public void OnNewMessage(int count)
{
// Update using the specialized method which triggers animation
btnMessages.UpdateBadge(count, animate: true);
// Or set directly
// btnMessages.BadgeCount = count;
// Customize badge appearance dynamically
if (count > 10)
{
btnMessages.BadgeColor = Color.Red;
}
else
{
btnMessages.BadgeColor = Color.Orange;
}
}
Example 3: High Performance Grid
Configuring buttons for a dense list where performance is critical.
public void LoadLargeList()
{
for (int i = 0; i < 100; i++)
{
var btn = new SiticoneDashboardButtonAdvanced
{
Text = $"Item {i}",
UltraPerformance = true, // Disables animations
Dock = DockStyle.Top,
Height = 40
};
pnlContainer.Controls.Add(btn);
}
}