diff --git a/src/Avalonia/HandyControlDemo_Avalonia/HandyControlDemo_Avalonia.csproj b/src/Avalonia/HandyControlDemo_Avalonia/HandyControlDemo_Avalonia.csproj
index 2589651b2..d4423cf01 100644
--- a/src/Avalonia/HandyControlDemo_Avalonia/HandyControlDemo_Avalonia.csproj
+++ b/src/Avalonia/HandyControlDemo_Avalonia/HandyControlDemo_Avalonia.csproj
@@ -11,12 +11,16 @@
HandyControlDemo
HandyControlDemo
+
+
+
+
@@ -31,14 +35,6 @@
-
-
-
-
-
-
-
-
True
@@ -53,9 +49,4 @@
Lang.Designer.cs
-
-
-
-
-
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Basic.axaml b/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Basic.axaml
deleted file mode 100644
index 2abd67b33..000000000
--- a/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Basic.axaml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Converters.axaml b/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Converters.axaml
new file mode 100644
index 000000000..7c354c483
--- /dev/null
+++ b/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Converters.axaml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Geometries.xaml b/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Geometries.axaml
similarity index 99%
rename from src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Geometries.xaml
rename to src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Geometries.axaml
index 7e2fdd00d..b6d549aca 100644
--- a/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Geometries.xaml
+++ b/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Basic/Geometries.axaml
@@ -1,4 +1,4 @@
-
M512 0h1216a512 512 0 1 1 0 1024H512A512 512 0 1 1 512 0zM420.16 311.04V768h74.88V433.92h2.56l228.48 334.08h72.96V311.04h-75.52v329.6h-2.56l-225.92-329.6h-74.88z m468.48 0V768h340.48v-64h-265.6V565.76h239.36v-64h-239.36V375.04h254.72v-64h-329.6z m369.28 0l131.2 456.96h80l89.6-343.68h2.56l88.96 343.68h79.36l131.84-456.96h-84.48l-85.76 347.52h-2.56l-90.24-347.52h-77.44l-90.24 347.52h-2.56l-85.76-347.52h-84.48z
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Theme.axaml b/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Theme.axaml
index 12c62a092..d0b51ec8a 100644
--- a/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Theme.axaml
+++ b/src/Avalonia/HandyControlDemo_Avalonia/Resources/Themes/Theme.axaml
@@ -3,7 +3,9 @@
-
+
+
+
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/Tools/Converter/StringRepeatConverter.cs b/src/Avalonia/HandyControlDemo_Avalonia/Tools/Converter/StringRepeatConverter.cs
new file mode 100644
index 000000000..9f2b3bb49
--- /dev/null
+++ b/src/Avalonia/HandyControlDemo_Avalonia/Tools/Converter/StringRepeatConverter.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Globalization;
+using System.Text;
+using Avalonia.Data.Converters;
+
+namespace HandyControlDemo.Tools.Converter;
+
+public class StringRepeatConverter : IValueConverter
+{
+ public object Convert(object? value, Type targetType, object? parameter, CultureInfo culture)
+ {
+ if (value is not string strValue)
+ {
+ return string.Empty;
+ }
+
+ var builder = new StringBuilder();
+ int num;
+
+ switch (parameter)
+ {
+ case string numStr:
+ {
+ if (!int.TryParse(numStr, out num))
+ {
+ return strValue;
+ }
+
+ break;
+ }
+ case int intValue:
+ num = intValue;
+ break;
+ default:
+ return strValue;
+ }
+
+ for (int i = 0; i < num; i++)
+ {
+ builder.Append(strValue);
+ }
+
+ return builder.ToString();
+ }
+
+ public object ConvertBack(object? value, Type targetType, object? parameter, CultureInfo culture)
+ {
+ throw new NotSupportedException();
+ }
+}
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Styles/LabelDemo.axaml b/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Styles/LabelDemo.axaml
new file mode 100644
index 000000000..a95a289fe
--- /dev/null
+++ b/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Styles/LabelDemo.axaml
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Styles/LabelDemo.axaml.cs b/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Styles/LabelDemo.axaml.cs
new file mode 100644
index 000000000..957fd2344
--- /dev/null
+++ b/src/Avalonia/HandyControlDemo_Avalonia/UserControl/Styles/LabelDemo.axaml.cs
@@ -0,0 +1,9 @@
+namespace HandyControlDemo.UserControl;
+
+public partial class LabelDemo : Avalonia.Controls.UserControl
+{
+ public LabelDemo()
+ {
+ InitializeComponent();
+ }
+}
diff --git a/src/Avalonia/HandyControl_Avalonia/Themes/Styles/Label.axaml b/src/Avalonia/HandyControl_Avalonia/Themes/Styles/Label.axaml
index ffc79fa94..5f27ed6ef 100644
--- a/src/Avalonia/HandyControl_Avalonia/Themes/Styles/Label.axaml
+++ b/src/Avalonia/HandyControl_Avalonia/Themes/Styles/Label.axaml
@@ -57,6 +57,15 @@
BasedOn="{StaticResource LabelDefault}"
TargetType="Label" />
+
+
+
+
+
@@ -64,6 +73,15 @@
Value="{DynamicResource PrimaryBrush}" />
+
+
+
+
+
@@ -71,6 +89,15 @@
Value="{DynamicResource SuccessBrush}" />
+
+
+
+
+
@@ -78,6 +105,15 @@
Value="{DynamicResource InfoBrush}" />
+
+
+
+
+
@@ -85,10 +121,28 @@
Value="{DynamicResource WarningBrush}" />
+
+
+
+
+
+
+
+
+
+