From 4aa95575266cc1644dce897107908a0715828307 Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Thu, 7 Mar 2024 16:20:10 +0800 Subject: [PATCH] code style --- .../Snap.Hutao/Control/Panel/EqualPanel.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Panel/EqualPanel.cs b/src/Snap.Hutao/Snap.Hutao/Control/Panel/EqualPanel.cs index d3f6c68f..ebf1e140 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Panel/EqualPanel.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/Panel/EqualPanel.cs @@ -3,6 +3,7 @@ using Microsoft.UI.Xaml; using System.Data; +using System.Runtime.InteropServices; using Windows.Foundation; namespace Snap.Hutao.Control.Panel; @@ -24,10 +25,10 @@ internal partial class EqualPanel : Microsoft.UI.Xaml.Controls.Panel maxItemWidth = 0; maxItemHeight = 0; - IEnumerable elements = Children.Where(static e => e.Visibility == Visibility.Visible); - visibleItemsCount = elements.Count(); + List elements = [.. Children.Where(element => element.Visibility == Visibility.Visible)]; + visibleItemsCount = elements.Count; - foreach (UIElement child in elements) + foreach (ref readonly UIElement child in CollectionsMarshal.AsSpan(elements)) { child.Measure(availableSize); maxItemWidth = Math.Max(maxItemWidth, child.DesiredSize.Width); @@ -38,7 +39,7 @@ internal partial class EqualPanel : Microsoft.UI.Xaml.Controls.Panel { // Return equal widths based on the widest item // In very specific edge cases the AvailableWidth might be infinite resulting in a crash. - if (HorizontalAlignment != HorizontalAlignment.Stretch || double.IsInfinity(availableSize.Width)) + if (HorizontalAlignment is not HorizontalAlignment.Stretch || double.IsInfinity(availableSize.Width)) { return new Size((maxItemWidth * visibleItemsCount) + (Spacing * (visibleItemsCount - 1)), maxItemHeight); } @@ -78,8 +79,7 @@ internal partial class EqualPanel : Microsoft.UI.Xaml.Controls.Panel private static void OnSpacingChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) { - EqualPanel panel = (EqualPanel)d; - panel.InvalidateMeasure(); + (d as EqualPanel)?.InvalidateMeasure(); } private void OnHorizontalAlignmentChanged(DependencyObject sender, DependencyProperty dp)