diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Behavior/AutoHeightBehavior.cs b/src/Snap.Hutao/Snap.Hutao/Control/Behavior/AutoHeightBehavior.cs index 5ed39429..a5bc4497 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Behavior/AutoHeightBehavior.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/Behavior/AutoHeightBehavior.cs @@ -22,17 +22,18 @@ internal sealed partial class AutoHeightBehavior : BehaviorBase - protected override void OnAssociatedObjectLoaded() + protected override bool Initialize() { UpdateElement(); AssociatedObject.SizeChanged += sizeChangedEventHandler; + return true; } /// - protected override void OnDetaching() + protected override bool Uninitialize() { AssociatedObject.SizeChanged -= sizeChangedEventHandler; - base.OnDetaching(); + return true; } private void OnSizeChanged(object sender, SizeChangedEventArgs e) diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Behavior/AutoWidthBehavior.cs b/src/Snap.Hutao/Snap.Hutao/Control/Behavior/AutoWidthBehavior.cs index fa65c4b5..1767b354 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Behavior/AutoWidthBehavior.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/Behavior/AutoWidthBehavior.cs @@ -22,17 +22,19 @@ internal sealed partial class AutoWidthBehavior : BehaviorBase } /// - protected override void OnAssociatedObjectLoaded() + protected override bool Initialize() { UpdateElement(); AssociatedObject.SizeChanged += sizeChangedEventHandler; + return true; } /// - protected override void OnDetaching() + protected override bool Uninitialize() { AssociatedObject.SizeChanged -= sizeChangedEventHandler; base.OnDetaching(); + return true; } private void OnSizeChanged(object sender, SizeChangedEventArgs e) diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Behavior/ComboBoxExtendsContentIntoTitleBarWorkaroundBehavior.cs b/src/Snap.Hutao/Snap.Hutao/Control/Behavior/ComboBoxExtendsContentIntoTitleBarWorkaroundBehavior.cs index 57b1ee6c..2f940eb7 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Behavior/ComboBoxExtendsContentIntoTitleBarWorkaroundBehavior.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/Behavior/ComboBoxExtendsContentIntoTitleBarWorkaroundBehavior.cs @@ -28,19 +28,19 @@ internal sealed class ComboBoxExtendsContentIntoTitleBarWorkaroundBehavior : Beh } /// - protected override void OnAssociatedObjectLoaded() + protected override bool Initialize() { AssociatedObject.DropDownOpened += dropDownOpenedHandler; AssociatedObject.DropDownClosed += dropDownClosedHandler; + return true; } /// - protected override void OnDetaching() + protected override bool Uninitialize() { AssociatedObject.DropDownOpened -= dropDownOpenedHandler; AssociatedObject.DropDownClosed -= dropDownClosedHandler; - - base.OnDetaching(); + return true; } private void OnDropDownOpened(object? sender, object e) diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Behavior/SelectedItemInViewBehavior.cs b/src/Snap.Hutao/Snap.Hutao/Control/Behavior/SelectedItemInViewBehavior.cs new file mode 100644 index 00000000..74df6403 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Control/Behavior/SelectedItemInViewBehavior.cs @@ -0,0 +1,22 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +using CommunityToolkit.WinUI.Behaviors; +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Controls.Primitives; + +namespace Snap.Hutao.Control.Behavior; + +internal sealed class SelectedItemInViewBehavior : BehaviorBase +{ + protected override bool Initialize() + { + if (AssociatedObject.SelectedItem is { } item) + { + AssociatedObject.ScrollIntoView(item); + } + + return true; + } +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs b/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs index e18b653b..c4976887 100644 --- a/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Extension/EnumerableExtension.cs @@ -94,18 +94,4 @@ internal static partial class EnumerableExtension string result = string.Join(separator, collection); return result.Length > 0 ? result : string.Empty; } - - /// - /// Concatenates each element from the collection into single string. - /// - /// Type of array elements. - /// Collection to convert. Cannot be . - /// Delimiter between elements in the final string. - /// A string to be returned if collection has no elements. - /// Converted collection into string. - public static string ToString(this IEnumerable collection, char separator, string defaultValue) - { - string result = string.Join(separator, collection); - return result.Length > 0 ? result : defaultValue; - } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Service/AnnouncementService.cs b/src/Snap.Hutao/Snap.Hutao/Service/AnnouncementService.cs index f8e2c30a..154894e5 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/AnnouncementService.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/AnnouncementService.cs @@ -109,7 +109,6 @@ internal sealed partial class AnnouncementService : IAnnouncementService { if (AnnouncementRegex.PermanentActivityTimeRegex.Match(announcement.Content) is { Success: true } permanent) { - announcement.StartTime = versionUpdateTime; continue; } diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiMonsterPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiMonsterPage.xaml index bc5989d3..3b0eaaa7 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiMonsterPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiMonsterPage.xaml @@ -68,15 +68,9 @@ ItemsSource="{Binding Monsters}" SelectedItem="{Binding Selected, Mode=TwoWay}" SelectionMode="Single"> - - - - - - - - - + + + @@ -188,6 +182,9 @@ ItemsSource="{Binding Monsters}" SelectedItem="{Binding Selected, Mode=TwoWay}" SelectionMode="Single"> + + +