feat: simple avatar group.

This commit is contained in:
Zhang Dian
2024-06-20 16:14:05 +08:00
parent 83c4e07579
commit 5fc2c33fed
3 changed files with 31 additions and 6 deletions

View File

@@ -1,5 +1,7 @@
using Avalonia;
using Avalonia.Controls;
using Avalonia.Controls.Templates;
using Avalonia.Layout;
namespace Ursa.Controls;
@@ -7,11 +9,15 @@ public class AvatarGroup : ItemsControl
{
public const string PART_RenderMore = "PART_RenderMore";
private static readonly FuncTemplate<Panel?> DefaultPanel =
new(() => new StackPanel { Orientation = Orientation.Horizontal });
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 static readonly StyledProperty<OverlapFromType> OverlapFromProperty =
AvaloniaProperty.Register<AvatarGroup, OverlapFromType>(
nameof(OverlapFrom));
public int MaxCount
{
@@ -24,6 +30,11 @@ public class AvatarGroup : ItemsControl
get => GetValue(OverlapFromProperty);
set => SetValue(OverlapFromProperty, value);
}
static AvatarGroup()
{
ItemsPanelProperty.OverrideDefaultValue<AvatarGroup>(DefaultPanel);
}
}
public enum OverlapFromType