From 905bc92825b11ecb2cb851021109823f1b0c27fb Mon Sep 17 00:00:00 2001
From: NaBian <836904362@qq.com>
Date: Wed, 17 Jun 2026 00:11:40 +0800
Subject: [PATCH] feat: Add Badge styles and demos.
---
.../Data/DemoInfo.json | 3 +-
.../UserControl/Controls/BadgeDemo.axaml | 49 +++++
.../UserControl/Controls/BadgeDemo.axaml.cs | 20 ++
.../Controls/Other/Badge.cs | 115 +++++++++++
.../Data/Enum/BadgeStatus.cs | 8 +
.../Themes/Styles/Badge.axaml | 188 ++++++++++++++++++
.../Themes/Styles/MergedStyles.axaml | 1 +
7 files changed, 383 insertions(+), 1 deletion(-)
create mode 100644 src/Avalonia/HandyControlDemo_Avalonia/UserControl/Controls/BadgeDemo.axaml
create mode 100644 src/Avalonia/HandyControlDemo_Avalonia/UserControl/Controls/BadgeDemo.axaml.cs
create mode 100644 src/Avalonia/HandyControl_Avalonia/Controls/Other/Badge.cs
create mode 100644 src/Avalonia/HandyControl_Avalonia/Data/Enum/BadgeStatus.cs
create mode 100644 src/Avalonia/HandyControl_Avalonia/Themes/Styles/Badge.axaml
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/Data/DemoInfo.json b/src/Avalonia/HandyControlDemo_Avalonia/Data/DemoInfo.json
index 2dfd239b..6644a740 100644
--- a/src/Avalonia/HandyControlDemo_Avalonia/Data/DemoInfo.json
+++ b/src/Avalonia/HandyControlDemo_Avalonia/Data/DemoInfo.json
@@ -55,7 +55,8 @@
[ "ProgressBar", "ProgressBarDemo", "Brush.ProgressBar", "", "Feedback" ],
[ "Rate", "RateDemo", "Brush.Favorite", "", "Feedback" ],
[ "Loading", "LoadingDemo", "Brush.Loading", "", "Feedback" ],
- [ "Tag", "TagDemo", "Brush.Tag", "", "DataDisplay" ]
+ [ "Tag", "TagDemo", "Brush.Tag", "", "DataDisplay" ],
+ [ "Badge", "BadgeDemo", "Brush.CheckDot", "", "DataDisplay" ]
]
}
]
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Controls/BadgeDemo.axaml b/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Controls/BadgeDemo.axaml
new file mode 100644
index 00000000..f690f978
--- /dev/null
+++ b/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Controls/BadgeDemo.axaml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Controls/BadgeDemo.axaml.cs b/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Controls/BadgeDemo.axaml.cs
new file mode 100644
index 00000000..da73c343
--- /dev/null
+++ b/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Controls/BadgeDemo.axaml.cs
@@ -0,0 +1,20 @@
+using Avalonia.Controls;
+using Avalonia.Interactivity;
+using HandyControl.Controls;
+
+namespace HandyControlDemo.UserControl;
+
+public partial class BadgeDemo : Avalonia.Controls.UserControl
+{
+ public BadgeDemo()
+ {
+ InitializeComponent();
+
+ var badge = this.FindControl("CountBadge");
+ var button = this.FindControl