feat: introduce class helper here.

This commit is contained in:
rabbitism
2024-01-25 13:19:48 +08:00
parent 430dccc958
commit 87bb47b4e1
5 changed files with 136 additions and 22 deletions

View File

@@ -0,0 +1,24 @@
using Avalonia;
namespace Ursa.Themes.Semi;
internal class ClassHelper: AvaloniaObject
{
static ClassHelper()
{
ClassesProperty.Changed.AddClassHandler<StyledElement>(OnClassesChanged);
}
public static readonly AttachedProperty<string> ClassesProperty =
AvaloniaProperty.RegisterAttached<ClassHelper, StyledElement, string>("Classes");
public static void SetClasses(AvaloniaObject obj, string value) => obj.SetValue(ClassesProperty, value);
public static string GetClasses(AvaloniaObject obj) => obj.GetValue(ClassesProperty);
private static void OnClassesChanged(StyledElement sender, AvaloniaPropertyChangedEventArgs value)
{
IEnumerable<string> classes = value.GetNewValue<IEnumerable<string>>();
sender.Classes.Clear();
sender.Classes.AddRange(classes);
}
}