feat: Add Card control and card demo with album images.

This commit is contained in:
NaBian committed 2026-06-13 17:15:54 +08:00
1 parent e7005d09b5
commit d6e16736e4
23 files changed
+287 -47

No files matched your search

@@ -0,0 +1,53 @@
<UserControl xmlns="https://github.com/avaloniaui"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:vm="clr-namespace:HandyControlDemo.ViewModel"
xmlns:data="clr-namespace:HandyControlDemo.Data"
xmlns:cv="clr-namespace:HandyControlDemo.Tools.Converter"
x:Class="HandyControlDemo.UserControl.CardDemo"
x:DataType="vm:CardDemoViewModel"
DataContext="{Binding CardDemo, Source={x:Static vm:ViewModelLocator.Instance}}">
<UserControl.Resources>
<cv:StringToBitmapConverter x:Key="StringToBitmap" />
</UserControl.Resources>
<ScrollViewer>
<ItemsControl Margin="32"
ItemsSource="{Binding DataList}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate DataType="data:CardModel">
<hc:Card MaxWidth="240"
BorderThickness="0"
Effect="{StaticResource EffectShadow2}"
Margin="8">
<hc:Card.Footer>
<StackPanel Margin="10">
<TextBlock TextWrapping="NoWrap"
TextTrimming="CharacterEllipsis"
Theme="{StaticResource TextBlockLargeBold}"
Text="{Binding Header}"
HorizontalAlignment="Left" />
<TextBlock TextWrapping="NoWrap"
TextTrimming="CharacterEllipsis"
Text="{Binding Footer}"
Margin="0,6,0,0"
HorizontalAlignment="Left" />
</StackPanel>
</hc:Card.Footer>
<Border CornerRadius="4,4,0,0"
ClipToBounds="True">
<Image Width="240"
Height="240"
Source="{Binding Content, Converter={StaticResource StringToBitmap}}"
Stretch="Uniform" />
</Border>
</hc:Card>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</ScrollViewer>
</UserControl>
@@ -0,0 +1,9 @@
namespace HandyControlDemo.UserControl;
public partial class CardDemo : Avalonia.Controls.UserControl
{
public CardDemo()
{
InitializeComponent();
}
}
@@ -2,8 +2,14 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:hc="https://handyorg.github.io/handycontrol"
xmlns:vm="clr-namespace:HandyControlDemo.ViewModel"
xmlns:data="clr-namespace:HandyControlDemo.Data"
xmlns:cv="clr-namespace:HandyControlDemo.Tools.Converter"
x:Class="HandyControlDemo.UserControl.HoneycombPanelDemo"
DataContext="{Binding HoneycombPanelDemo, Source={x:Static vm:ViewModelLocator.Instance}}">
x:DataType="vm:CardDemoViewModel"
DataContext="{Binding CardDemo, Source={x:Static vm:ViewModelLocator.Instance}}">
<UserControl.Resources>
<cv:StringToBitmapConverter x:Key="StringToBitmap" />
</UserControl.Resources>
<Grid Margin="32">
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
@@ -25,13 +31,14 @@
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<DataTemplate DataType="data:CardModel">
<Border Width="60"
Height="60"
Margin="6"
CornerRadius="30"
ClipToBounds="True">
<Image Source="{Binding}" Stretch="UniformToFill" />
<Image Source="{Binding Content, Converter={StaticResource StringToBitmap}}"
Stretch="UniformToFill" />
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>