diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Panel/HorizontalEqualPanel.cs b/src/Snap.Hutao/Snap.Hutao/Control/Panel/HorizontalEqualPanel.cs index 1a9a893d..7828c2e9 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Panel/HorizontalEqualPanel.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/Panel/HorizontalEqualPanel.cs @@ -18,11 +18,17 @@ internal partial class HorizontalEqualPanel : Microsoft.UI.Xaml.Controls.Panel protected override Size MeasureOverride(Size availableSize) { + int itemCount = Children.Count(child => child.Visibility is Visibility.Visible); foreach (UIElement child in Children) { + if (child.Visibility is Visibility.Collapsed) + { + continue; + } + // ScrollViewer will always return an Infinity Size, we should use ActualWidth for this situation. double availableWidth = double.IsInfinity(availableSize.Width) ? ActualWidth : availableSize.Width; - double childAvailableWidth = (availableWidth + Spacing) / Children.Count; + double childAvailableWidth = (availableWidth + Spacing) / itemCount; double childMaxAvailableWidth = Math.Max(MinItemWidth, childAvailableWidth); child.Measure(new(childMaxAvailableWidth - Spacing, ActualHeight)); } @@ -32,13 +38,18 @@ internal partial class HorizontalEqualPanel : Microsoft.UI.Xaml.Controls.Panel protected override Size ArrangeOverride(Size finalSize) { - int itemCount = Children.Count; + int itemCount = Children.Count(child => child.Visibility is Visibility.Visible); double availableItemWidth = (finalSize.Width - (Spacing * (itemCount - 1))) / itemCount; double actualItemWidth = Math.Max(MinItemWidth, availableItemWidth); double offset = 0; foreach (UIElement child in Children) { + if (child.Visibility is Visibility.Collapsed) + { + continue; + } + child.Arrange(new Rect(offset, 0, actualItemWidth, finalSize.Height)); offset += actualItemWidth + Spacing; } diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj index 26eef9d5..32071b4a 100644 --- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj +++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj @@ -153,7 +153,6 @@ - @@ -350,11 +349,6 @@ - - - MSBuild:Compile - - MSBuild:Compile diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsPanel.xaml b/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsPanel.xaml deleted file mode 100644 index 0a0e99e9..00000000 --- a/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsPanel.xaml +++ /dev/null @@ -1,13 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsPanel.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsPanel.xaml.cs deleted file mode 100644 index 4dd8b5c1..00000000 --- a/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsPanel.xaml.cs +++ /dev/null @@ -1,38 +0,0 @@ -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - -using Microsoft.UI.Xaml; -using Snap.Hutao.Control.Panel; -using Snap.Hutao.ViewModel.GachaLog; - -namespace Snap.Hutao.View.Control; - -[DependencyProperty("Statistics", typeof(HutaoStatistics), default, nameof(OnStatisticsChanged))] -internal sealed partial class HutaoStatisticsPanel : HorizontalEqualPanel -{ - public HutaoStatisticsPanel() - { - InitializeComponent(); - - if (DataContext is HutaoStatistics statistics && statistics.Chronicled is { } chronicled) - { - Children.Add(new HutaoStatisticsCard - { - DataContext = chronicled, - }); - } - } - - private static void OnStatisticsChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args) - { - HutaoStatisticsPanel panel = (HutaoStatisticsPanel)obj; - - if (args.NewValue is HutaoStatistics { Chronicled: { } chronicled }) - { - panel.Children.Add(new HutaoStatisticsCard - { - DataContext = chronicled, - }); - } - } -} diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml index 1147c210..46245bd0 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/GachaLogPage.xaml @@ -468,15 +468,18 @@ Margin="16" CornerRadius="{ThemeResource ControlCornerRadius}" IsLoading="{Binding HutaoCloudStatisticsViewModel.IsInitialized, Converter={StaticResource BoolNegationConverter}}"/> - - + + + + +