mirror of
https://jihulab.com/DGP-Studio/Snap.Hutao.git
synced 2025-11-19 21:02:53 +08:00
fix equal panel spacing
This commit is contained in:
@@ -21,13 +21,10 @@ internal partial class HorizontalEqualPanel : Microsoft.UI.Xaml.Controls.Panel
|
||||
foreach (UIElement child in Children)
|
||||
{
|
||||
// ScrollViewer will always return an Infinity Size, we should use ActualWidth for this situation.
|
||||
double availableWidth = double.IsInfinity(availableSize.Width)
|
||||
? ActualWidth
|
||||
: availableSize.Width;
|
||||
|
||||
double availableWidth = double.IsInfinity(availableSize.Width) ? ActualWidth : availableSize.Width;
|
||||
double childAvailableWidth = (availableWidth + Spacing) / Children.Count;
|
||||
double childMaxAvailableWidth = Math.Max(MinItemWidth, childAvailableWidth);
|
||||
child.Measure(new(childMaxAvailableWidth, availableSize.Height));
|
||||
child.Measure(new(childMaxAvailableWidth - Spacing, ActualHeight));
|
||||
}
|
||||
|
||||
return base.MeasureOverride(availableSize);
|
||||
@@ -36,26 +33,14 @@ internal partial class HorizontalEqualPanel : Microsoft.UI.Xaml.Controls.Panel
|
||||
protected override Size ArrangeOverride(Size finalSize)
|
||||
{
|
||||
int itemCount = Children.Count;
|
||||
|
||||
// 计算总间距
|
||||
double totalSpacing = Spacing * (itemCount - 1);
|
||||
|
||||
// 添加间距后的总宽度
|
||||
double totalWidthWithSpacing = finalSize.Width - totalSpacing;
|
||||
|
||||
// 计算每个子元素可用的宽度(考虑间距)
|
||||
double availableWidthPerItem = (totalWidthWithSpacing - totalSpacing) / itemCount;
|
||||
|
||||
// 实际子元素宽度为最小宽度和可用宽度的较大值
|
||||
double availableWidthPerItem = (finalSize.Width - (Spacing * (itemCount - 1))) / itemCount;
|
||||
double actualItemWidth = Math.Max(MinItemWidth, availableWidthPerItem);
|
||||
|
||||
double x = 0;
|
||||
|
||||
// 设置子元素的位置和大小
|
||||
double offset = 0;
|
||||
foreach (UIElement child in Children)
|
||||
{
|
||||
child.Arrange(new Rect(x, 0, actualItemWidth, finalSize.Height));
|
||||
x += actualItemWidth + Spacing;
|
||||
child.Arrange(new Rect(offset, 0, actualItemWidth, finalSize.Height));
|
||||
offset += actualItemWidth + Spacing;
|
||||
}
|
||||
|
||||
return finalSize;
|
||||
|
||||
@@ -38,6 +38,10 @@ internal sealed class PullPrediction
|
||||
typedWishSummary.PredictedPullLeftToOrange = result.PredictedPullLeftToOrange;
|
||||
typedWishSummary.IsPredictPullAvailable = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
await barrier.SignalAndWaitAsync().ConfigureAwait(false);
|
||||
}
|
||||
}
|
||||
|
||||
private static PredictResult PredictCore(List<PullCount> distribution, TypedWishSummary typedWishSummary)
|
||||
|
||||
@@ -274,7 +274,7 @@
|
||||
</Viewbox>
|
||||
</Border>
|
||||
|
||||
<Grid Grid.Column="4" RowSpacing="2">
|
||||
<Grid Grid.Column="4" RowSpacing="4">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
@@ -306,7 +306,7 @@
|
||||
<RowDefinition/>
|
||||
<RowDefinition Height="auto"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid ColumnSpacing="2">
|
||||
<Grid ColumnSpacing="4">
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition/>
|
||||
<ColumnDefinition/>
|
||||
@@ -368,7 +368,7 @@
|
||||
|
||||
</cwcont:Case>
|
||||
<cwcont:Case Value="{shcm:Int32 Value=2}">
|
||||
<Grid RowSpacing="2">
|
||||
<Grid RowSpacing="4">
|
||||
<Grid.RowDefinitions>
|
||||
<RowDefinition/>
|
||||
<RowDefinition/>
|
||||
|
||||
@@ -287,21 +287,18 @@
|
||||
</Pivot.RightHeader>
|
||||
<PivotItem Header="{shcm:ResourceString Name=ViewPageGahcaLogPivotOverview}">
|
||||
<ScrollViewer
|
||||
Margin="0,0,16,0"
|
||||
Margin="16,0"
|
||||
HorizontalScrollBarVisibility="Auto"
|
||||
HorizontalScrollMode="Enabled"
|
||||
VerticalScrollMode="Disabled">
|
||||
<shcp:HorizontalEqualPanel MinItemWidth="320">
|
||||
<shvc:StatisticsCard Margin="16,16,0,16" DataContext="{Binding Statistics.AvatarWish}"/>
|
||||
<shvc:StatisticsCard Margin="16,16,0,16" DataContext="{Binding Statistics.WeaponWish}"/>
|
||||
<shvc:StatisticsCard
|
||||
Margin="16,16,0,16"
|
||||
DataContext="{Binding Statistics.StandardWish}"
|
||||
ShowUpPull="False"/>
|
||||
<shvc:StatisticsCard
|
||||
Margin="16,16,0,16"
|
||||
DataContext="{Binding Statistics.ChronicledWish}"
|
||||
ShowUpPull="False"/>
|
||||
<shcp:HorizontalEqualPanel
|
||||
Margin="0,16"
|
||||
MinItemWidth="302"
|
||||
Spacing="16">
|
||||
<shvc:StatisticsCard DataContext="{Binding Statistics.AvatarWish}"/>
|
||||
<shvc:StatisticsCard DataContext="{Binding Statistics.WeaponWish}"/>
|
||||
<shvc:StatisticsCard DataContext="{Binding Statistics.StandardWish}" ShowUpPull="False"/>
|
||||
<shvc:StatisticsCard DataContext="{Binding Statistics.ChronicledWish}" ShowUpPull="False"/>
|
||||
</shcp:HorizontalEqualPanel>
|
||||
<!--<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
|
||||
Reference in New Issue
Block a user