From d529b3cea6282b6eee7ffefa17158d51bd3225c6 Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Thu, 9 Nov 2023 11:38:30 +0800 Subject: [PATCH] fix #1079 --- .../Control/Layout/UniformStaggeredLayout.cs | 7 ++- .../Snap.Hutao/View/Page/CultivationPage.xaml | 59 +++++++++---------- 2 files changed, 34 insertions(+), 32 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Layout/UniformStaggeredLayout.cs b/src/Snap.Hutao/Snap.Hutao/Control/Layout/UniformStaggeredLayout.cs index 43d82481..ce1b24f9 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Layout/UniformStaggeredLayout.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/Layout/UniformStaggeredLayout.cs @@ -128,8 +128,13 @@ internal sealed partial class UniformStaggeredLayout : VirtualizingLayout UniformStaggeredItem item = state.GetItemAt(i); if (item.Height == 0) { + // https://github.com/DGP-Studio/Snap.Hutao/issues/1079 + // The first element must be force refreshed otherwise + // it will use the old one realized + ElementRealizationOptions options = i == 0 ? ElementRealizationOptions.ForceCreate : ElementRealizationOptions.None; + // Item has not been measured yet. Get the element and store the values - UIElement element = context.GetOrCreateElementAt(i); + UIElement element = context.GetOrCreateElementAt(i, options); element.Measure(new Size(state.ColumnWidth, availableHeight)); item.Height = element.DesiredSize.Height; item.Element = element; diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml index 92887710..4a835472 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/CultivationPage.xaml @@ -272,39 +272,36 @@ - - - - - - - - + + + + + + + - - - - - + + + + + + +