feat: initialize.

This commit is contained in:
Zhang Dian
2024-06-15 21:57:10 +08:00
parent 8ae57f4a5b
commit 4e6e2a083a
15 changed files with 119 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
using Avalonia;
using Avalonia.Controls;
namespace Ursa.Controls;
public class Avatar : Button
{
public const string PART_TopPresenter = "PART_TopPresenter";
public const string PART_BottomPresenter = "PART_BottomPresenter";
public const string PART_HoverMask = "PART_HoverMask";
public static readonly StyledProperty<bool> ContentMotionProperty = AvaloniaProperty.Register<Avatar, bool>(
nameof(ContentMotion));
public static readonly StyledProperty<double> GapProperty = AvaloniaProperty.Register<Avatar, double>(
nameof(Gap));
public static readonly StyledProperty<string> SourceProperty = AvaloniaProperty.Register<Avatar, string>(
nameof(Source));
public bool ContentMotion
{
get => GetValue(ContentMotionProperty);
set => SetValue(ContentMotionProperty, value);
}
public double Gap
{
get => GetValue(GapProperty);
set => SetValue(GapProperty, value);
}
public string Source
{
get => GetValue(SourceProperty);
set => SetValue(SourceProperty, value);
}
}

View File

@@ -0,0 +1,33 @@
using Avalonia;
using Avalonia.Controls;
namespace Ursa.Controls;
public class AvatarGroup : ItemsControl
{
public const string PART_RenderMore = "PART_RenderMore";
public static readonly StyledProperty<int> MaxCountProperty = AvaloniaProperty.Register<AvatarGroup, int>(
nameof(MaxCount));
public static readonly StyledProperty<OverlapFromType> OverlapFromProperty = AvaloniaProperty.Register<AvatarGroup, OverlapFromType>(
nameof(OverlapFrom));
public int MaxCount
{
get => GetValue(MaxCountProperty);
set => SetValue(MaxCountProperty, value);
}
public OverlapFromType OverlapFrom
{
get => GetValue(OverlapFromProperty);
set => SetValue(OverlapFromProperty, value);
}
}
public enum OverlapFromType
{
Start,
End
}