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}}"/>
-
-
+
+
+
+
+