From 44ddae602d039ed2b5d96c912cb264c7b3d266f5 Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Thu, 20 Jun 2024 17:15:30 +0800 Subject: [PATCH] refactor --- .../Builder/ButtonBase/ButtonBaseBuilder.cs | 10 - .../ButtonBase/ButtonBaseBuilderExtension.cs | 25 -- .../Builder/ButtonBase/ButtonBuilder.cs | 8 - .../ButtonBase/ButtonBuilderExtension.cs | 19 - .../Builder/ButtonBase/IButtonBaseBuilder.cs | 12 - .../Control/Helper/FrameworkElementHelper.cs | 38 -- .../Snap.Hutao/Control/Image/CachedImage.cs | 341 +++++++++++++++++- .../Snap.Hutao/Control/Image/CachedImage.xaml | 5 +- .../Control/Image/CompositionImage.cs | 2 +- .../Control/Image/Implementation/ImageEx.cs | 37 -- .../Image/Implementation/ImageExBase.cs | 322 ----------------- .../Control/Text/DescriptionTextBlock.cs | 2 +- .../Control/Text/HtmlDescriptionTextBlock.cs | 2 +- .../Control/Theme/InfoBarOverride.xaml | 11 +- .../Control/Theme/ScrollViewer.xaml | 5 +- .../NotifyIcon/NotifyIconContextMenu.xaml.cs | 2 +- .../Snap.Hutao/LaunchGameWindow.xaml.cs | 2 +- .../Snap.Hutao/Resource/Localization/SH.resx | 3 + ...aunchExecutionEnsureGameResourceHandler.cs | 2 +- .../Input}/CommandInvocation.cs | 2 +- .../Behavior/InvokeCommandOnLoadedBehavior.cs | 2 +- ...keCommandOrOnActualThemeChangedBehavior.cs | 2 +- .../Selector => UI/Xaml/Control}/ComboBox2.cs | 9 +- .../Xaml/Control}/ContentDialogExtension.cs | 8 +- .../Xaml/Control/ContentDialogScope.cs} | 6 +- .../Xaml/Control}/InfoBarHelper.cs | 2 +- .../Xaml/Control}/NavigationViewHelper.cs | 23 +- .../Xaml/Control}/ScrollViewerHelper.cs | 2 +- .../Xaml/Control}/SettingsExpanderHelper.cs | 2 +- .../Control/Tokenizing/AutoSuggestTokenBox.cs | 2 +- .../Xaml/Data}/AdvancedCollectionView.cs | 2 +- .../Xaml/Data}/IAdvancedCollectionView.cs | 2 +- .../Xaml/Data}/VectorChangedEventArgs.cs | 2 +- .../Xaml}/DependencyObjectExtension.cs | 2 +- .../Xaml}/FrameworkElementExtension.cs | 2 +- .../UI/Xaml/FrameworkElementHelper.cs | 18 + .../Helper => UI/Xaml}/UIElementHelper.cs | 2 +- .../View/Card/AchievementCard.xaml.cs | 2 +- .../View/Card/DailyNoteCard.xaml.cs | 2 +- .../View/Card/GachaStatisticsCard.xaml.cs | 2 +- .../View/Card/LaunchGameCard.xaml.cs | 2 +- .../View/Card/Primitive/CardBlock.xaml | 6 +- .../View/Card/Primitive/CardBlock.xaml.cs | 1 + .../Control/AnnouncementContentViewer.xaml.cs | 2 +- .../View/Control/HutaoStatisticsCard.xaml | 4 +- .../Snap.Hutao/View/Control/ItemIcon.xaml | 7 +- .../Snap.Hutao/View/Control/SkillPivot.xaml | 4 +- .../View/Control/StatisticsCard.xaml | 7 +- .../Snap.Hutao/View/Control/WebViewer.xaml.cs | 2 +- .../Dialog/GachaLogRefreshProgressDialog.xaml | 4 +- .../LaunchGameConfigurationFixDialog.xaml | 4 +- .../Snap.Hutao/View/Guide/GuideView.xaml.cs | 2 +- src/Snap.Hutao/Snap.Hutao/View/MainView.xaml | 4 +- .../Snap.Hutao/View/MainView.xaml.cs | 2 +- .../Snap.Hutao/View/Page/AchievementPage.xaml | 4 +- .../View/Page/AnnouncementPage.xaml | 4 +- .../Snap.Hutao/View/Page/DailyNotePage.xaml | 20 +- .../View/Page/ISupportLoginByWebView.cs | 2 +- .../Snap.Hutao/View/Page/LaunchGamePage.xaml | 6 +- .../Snap.Hutao/View/Page/SettingPage.xaml | 8 +- .../View/Page/SpiralAbyssRecordPage.xaml | 4 +- .../Snap.Hutao/View/TitleView.xaml.cs | 2 +- .../Snap.Hutao/View/UserView.xaml.cs | 2 +- .../Achievement/AchievementImporter.cs | 2 +- .../Achievement/AchievementViewModel.cs | 2 +- .../AvatarProperty/AvatarPropertyViewModel.cs | 2 +- .../Cultivation/CultivationViewModel.cs | 2 +- .../ViewModel/DailyNote/DailyNoteViewModel.cs | 2 +- .../ViewModel/GachaLog/GachaLogViewModel.cs | 4 +- .../ViewModel/GachaLog/HutaoCloudViewModel.cs | 2 +- .../ViewModel/Game/LaunchGameViewModel.cs | 2 +- .../ViewModel/Game/LaunchGameViewModelSlim.cs | 2 +- .../ViewModel/Setting/SettingViewModel.cs | 2 +- .../Snap.Hutao/ViewModel/TitleViewModel.cs | 2 +- .../ViewModel/Wiki/WikiAvatarViewModel.cs | 2 +- .../ViewModel/Wiki/WikiMonsterViewModel.cs | 2 +- .../ViewModel/Wiki/WikiWeaponViewModel.cs | 2 +- .../Bridge/HoyolabCoreWebView2Extension.cs | 2 +- .../WebView2}/WebView2Extension.cs | 5 +- 79 files changed, 478 insertions(+), 606 deletions(-) delete mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBaseBuilder.cs delete mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBaseBuilderExtension.cs delete mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBuilder.cs delete mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBuilderExtension.cs delete mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/IButtonBaseBuilder.cs delete mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Helper/FrameworkElementHelper.cs delete mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Image/Implementation/ImageEx.cs delete mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Image/Implementation/ImageExBase.cs rename src/Snap.Hutao/Snap.Hutao/{Control/Extension => UI/Input}/CommandInvocation.cs (90%) rename src/Snap.Hutao/Snap.Hutao/{Control/Collection/Selector => UI/Xaml/Control}/ComboBox2.cs (74%) rename src/Snap.Hutao/Snap.Hutao/{Control/Extension => UI/Xaml/Control}/ContentDialogExtension.cs (68%) rename src/Snap.Hutao/Snap.Hutao/{Control/Extension/ContentDialogHideToken.cs => UI/Xaml/Control/ContentDialogScope.cs} (82%) rename src/Snap.Hutao/Snap.Hutao/{Control/Helper => UI/Xaml/Control}/InfoBarHelper.cs (90%) rename src/Snap.Hutao/Snap.Hutao/{Control/Helper => UI/Xaml/Control}/NavigationViewHelper.cs (58%) rename src/Snap.Hutao/Snap.Hutao/{Control/Helper => UI/Xaml/Control}/ScrollViewerHelper.cs (89%) rename src/Snap.Hutao/Snap.Hutao/{Control/Helper => UI/Xaml/Control}/SettingsExpanderHelper.cs (95%) rename src/Snap.Hutao/Snap.Hutao/{Control/Collection/AdvancedCollectionView => UI/Xaml/Data}/AdvancedCollectionView.cs (99%) rename src/Snap.Hutao/Snap.Hutao/{Control/Collection/AdvancedCollectionView => UI/Xaml/Data}/IAdvancedCollectionView.cs (96%) rename src/Snap.Hutao/Snap.Hutao/{Control/Collection/AdvancedCollectionView => UI/Xaml/Data}/VectorChangedEventArgs.cs (87%) rename src/Snap.Hutao/Snap.Hutao/{Control/Extension => UI/Xaml}/DependencyObjectExtension.cs (90%) rename src/Snap.Hutao/Snap.Hutao/{Control/Extension => UI/Xaml}/FrameworkElementExtension.cs (97%) create mode 100644 src/Snap.Hutao/Snap.Hutao/UI/Xaml/FrameworkElementHelper.cs rename src/Snap.Hutao/Snap.Hutao/{Control/Helper => UI/Xaml}/UIElementHelper.cs (96%) rename src/Snap.Hutao/Snap.Hutao/{Control/Extension => Web/WebView2}/WebView2Extension.cs (90%) diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBaseBuilder.cs b/src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBaseBuilder.cs deleted file mode 100644 index 23bcc271..00000000 --- a/src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBaseBuilder.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - -namespace Snap.Hutao.Control.Builder.ButtonBase; - -internal class ButtonBaseBuilder : IButtonBaseBuilder - where TButton : Microsoft.UI.Xaml.Controls.Primitives.ButtonBase, new() -{ - public TButton Button { get; } = new(); -} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBaseBuilderExtension.cs b/src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBaseBuilderExtension.cs deleted file mode 100644 index 58ad45a5..00000000 --- a/src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBaseBuilderExtension.cs +++ /dev/null @@ -1,25 +0,0 @@ -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - -using Snap.Hutao.Core.Abstraction.Extension; - -namespace Snap.Hutao.Control.Builder.ButtonBase; - -internal static class ButtonBaseBuilderExtension -{ - public static TBuilder SetContent(this TBuilder builder, object? content) - where TBuilder : IButtonBaseBuilder - where TButton : Microsoft.UI.Xaml.Controls.Primitives.ButtonBase - { - builder.Configure(builder => builder.Button.Content = content); - return builder; - } - - public static TBuilder SetCommand(this TBuilder builder, ICommand command) - where TBuilder : IButtonBaseBuilder - where TButton : Microsoft.UI.Xaml.Controls.Primitives.ButtonBase - { - builder.Configure(builder => builder.Button.Command = command); - return builder; - } -} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBuilder.cs b/src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBuilder.cs deleted file mode 100644 index 6274b5d0..00000000 --- a/src/Snap.Hutao/Snap.Hutao/Control/Builder/ButtonBase/ButtonBuilder.cs +++ /dev/null @@ -1,8 +0,0 @@ -// Copyright (c) DGP Studio. All rights reserved. -// Licensed under the MIT license. - -using Microsoft.UI.Xaml.Controls; - -namespace Snap.Hutao.Control.Builder.ButtonBase; - -internal sealed class ButtonBuilder : ButtonBaseBuilder