feat: Add Gravatar control and demo.

This commit is contained in:
NaBian committed 2026-06-13 20:14:53 +08:00
1 parent ee5c47a7cd
commit 6c307a6ccc
9 files changed
+329 -17

No files matched your search

@@ -0,0 +1,34 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:cv="clr-namespace:HandyControlDemo.Tools.Converter"
x:Class="HandyControlDemo.UserControl.GravatarDemo"
Background="{DynamicResource RegionBrush}">
<UserControl.Resources>
<cv:StringToBitmapConverter x:Key="StringToBitmap" />
</UserControl.Resources>
<TransitioningContentControl>
<ScrollViewer>
<hc:UniformSpacingPanel Margin="32" ChildWrapping="Wrap" Spacing="16" ItemHorizontalAlignment="Center">
<UniformGrid Rows="3" Columns="3" Width="240" Height="240">
<hc:Gravatar Id="User1" />
<hc:Gravatar Id="User2" />
<hc:Gravatar Theme="{StaticResource GravatarCircleImg}">
<Image Source="{Binding Source='avares://HandyControlDemo/Resources/Img/Album/2.jpg', Converter={StaticResource StringToBitmap}}" />
</hc:Gravatar>
<hc:Gravatar Id="User4" />
<hc:Gravatar Id="User5" Theme="{StaticResource GravatarCircle}" />
<hc:Gravatar Id="User6" />
<hc:Gravatar Theme="{StaticResource GravatarCircle}"
Source="{Binding Source='avares://HandyControlDemo/Resources/Img/Album/1.jpg', Converter={StaticResource StringToBitmap}}" />
<hc:Gravatar Id="User8" />
<hc:Gravatar Id="User9" />
</UniformGrid>
<StackPanel Width="240" Height="220" VerticalAlignment="Center">
<TextBox Text="User1" Name="TextBoxName" Width="180" />
<hc:Gravatar Height="180" Width="180" Id="{Binding #TextBoxName.Text}" Margin="10" />
</StackPanel>
</hc:UniformSpacingPanel>
</ScrollViewer>
</TransitioningContentControl>
</UserControl>
@@ -0,0 +1,9 @@
namespace HandyControlDemo.UserControl;
public partial class GravatarDemo : Avalonia.Controls.UserControl
{
public GravatarDemo()
{
InitializeComponent();
}
}
@@ -23,27 +23,23 @@
<Button Command="{Binding RemoveItemCommand}" Content="{x:Static langs:Lang.RemoveItem}" />
</hc:ButtonGroup>
<Border Grid.Row="1" Padding="0" Theme="{StaticResource BorderRegion}">
<ItemsControl HorizontalAlignment="Center"
VerticalAlignment="Center"
ItemsSource="{Binding DataList}">
<ItemsControl.ItemsPanel>
<ListBox Background="Transparent"
BorderThickness="0"
Theme="{StaticResource ListBoxCustom}"
ItemsSource="{Binding DataList}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<hc:HoneycombPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate DataType="data:CardModel">
<Border Width="60"
Height="60"
Margin="6"
CornerRadius="30"
ClipToBounds="True">
<Image Source="{Binding Content, Converter={StaticResource StringToBitmap}}"
Stretch="UniformToFill" />
</Border>
<hc:Gravatar Theme="{StaticResource GravatarCircle}"
Margin="10"
Source="{Binding Content, Converter={StaticResource StringToBitmap}}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ListBox.ItemTemplate>
</ListBox>
</Border>
</Grid>
</TransitioningContentControl>