From 31e082f46e0523e6120937f8c8585e660d6d2cd3 Mon Sep 17 00:00:00 2001 From: Zhang Dian <54255897+zdpcdt@users.noreply.github.com> Date: Wed, 20 Nov 2024 08:08:42 +0800 Subject: [PATCH] feat: enhance Carousel. --- src/Semi.Avalonia/Controls/Carousel.axaml | 54 +++++++------------ src/Semi.Avalonia/Converters/ItemConverter.cs | 14 +++++ .../Converters/ItemToObjectConverter.cs | 26 --------- src/Semi.Avalonia/Themes/Dark/Carousel.axaml | 5 +- src/Semi.Avalonia/Themes/Light/Carousel.axaml | 5 +- .../Themes/Shared/Carousel.axaml | 7 ++- 6 files changed, 41 insertions(+), 70 deletions(-) create mode 100644 src/Semi.Avalonia/Converters/ItemConverter.cs delete mode 100644 src/Semi.Avalonia/Converters/ItemToObjectConverter.cs diff --git a/src/Semi.Avalonia/Controls/Carousel.axaml b/src/Semi.Avalonia/Controls/Carousel.axaml index fb41129..69be86a 100644 --- a/src/Semi.Avalonia/Controls/Carousel.axaml +++ b/src/Semi.Avalonia/Controls/Carousel.axaml @@ -1,9 +1,8 @@ - @@ -90,26 +89,26 @@ - - - - - + - - - - - - + - - - @@ -215,8 +198,9 @@ HorizontalAlignment="Center" VerticalAlignment="Center" ItemContainerTheme="{DynamicResource CarouselIndicatorDotListBoxItem}" - ItemsSource="{TemplateBinding ItemCount, Mode=OneWay, Converter={StaticResource ItemsConverter}}" - SelectedIndex="{TemplateBinding SelectedIndex, Mode=TwoWay}"> + ItemsSource="{TemplateBinding ItemCount, Converter={x:Static converter:ItemConverter.ItemToObjectConverter}}" + IsVisible="{TemplateBinding ItemCount, Converter={x:Static converter:ItemConverter.ItemVisibleConverter}}" + SelectedIndex="{TemplateBinding SelectedIndex}"> @@ -230,6 +214,7 @@ Theme="{DynamicResource CarouselButton}" Margin="{DynamicResource CarouselButtonMargin}" Foreground="{DynamicResource CarouselButtonForeground}" + IsVisible="{TemplateBinding ItemCount, Converter={x:Static converter:ItemConverter.ItemVisibleConverter}}" Command="{Binding $parent[Carousel].Previous}" />