From 1584fd1428b071401f5104d4087cb5747bc42b6a Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Tue, 10 Oct 2023 20:23:39 +0800 Subject: [PATCH 1/9] fix mutiple display window init size incorrectness --- .../Snap.Hutao/Core/Windowing/WindowController.cs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Windowing/WindowController.cs b/src/Snap.Hutao/Snap.Hutao/Core/Windowing/WindowController.cs index af847d74..a8d085e1 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Windowing/WindowController.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Windowing/WindowController.cs @@ -76,15 +76,15 @@ internal sealed class WindowController { // Set first launch size double scale = options.GetWindowScale(); - SizeInt32 transformedSize = options.InitSize.Scale(scale); - RectInt32 rect = StructMarshal.RectInt32(transformedSize); + SizeInt32 scaledSize = options.InitSize.Scale(scale); + RectInt32 rect = StructMarshal.RectInt32(scaledSize); if (options.PersistSize) { RectInt32 persistedRect = (CompactRect)LocalSetting.Get(SettingKeys.WindowRect, (CompactRect)rect); if (persistedRect.Size() >= options.InitSize.Size()) { - rect = persistedRect; + rect = persistedRect.Scale(scale); } } @@ -105,7 +105,8 @@ internal sealed class WindowController // prevent save value when we are maximized. if (!windowPlacement.showCmd.HasFlag(SHOW_WINDOW_CMD.SW_SHOWMAXIMIZED)) { - LocalSetting.Set(SettingKeys.WindowRect, (CompactRect)window.AppWindow.GetRect()); + double scale = 1 / options.GetWindowScale(); + LocalSetting.Set(SettingKeys.WindowRect, (CompactRect)window.AppWindow.GetRect().Scale(scale)); } } From 5b1fb6e1dd0159ee2fc82f945ed222f6349a8562 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Tue, 10 Oct 2023 22:27:53 +0800 Subject: [PATCH 2/9] move resources --- src/Snap.Hutao/Snap.Hutao/App.xaml | 191 +----------------- .../Snap.Hutao/Control/Image/CachedImage.xaml | 82 ++++++++ .../Snap.Hutao/Control/Theme/Converter.xaml | 35 ++++ .../Snap.Hutao/Control/Theme/FontStyle.xaml | 5 +- .../Snap.Hutao/Control/Theme/Glyph.xaml | 10 + .../Control/Theme/ItemsPanelTemplate.xaml | 23 +++ .../Control/Theme/SettingsStyle.xaml | 10 + .../Snap.Hutao/Control/Theme/Uri.xaml | 34 ++++ .../Core/Windowing/WindowController.cs | 6 +- src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj | 35 ++++ 10 files changed, 241 insertions(+), 190 deletions(-) create mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Image/CachedImage.xaml create mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Theme/Converter.xaml create mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Theme/Glyph.xaml create mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Theme/ItemsPanelTemplate.xaml create mode 100644 src/Snap.Hutao/Snap.Hutao/Control/Theme/Uri.xaml diff --git a/src/Snap.Hutao/Snap.Hutao/App.xaml b/src/Snap.Hutao/Snap.Hutao/App.xaml index 2f382bce..7ea2e5c4 100644 --- a/src/Snap.Hutao/Snap.Hutao/App.xaml +++ b/src/Snap.Hutao/Snap.Hutao/App.xaml @@ -2,24 +2,24 @@ x:Class="Snap.Hutao.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:cwcont="using:CommunityToolkit.WinUI.Controls" - xmlns:cwconv="using:CommunityToolkit.WinUI.Converters" - xmlns:cwm="using:CommunityToolkit.WinUI.Media" - xmlns:shci="using:Snap.Hutao.Control.Image" - xmlns:shmmc="using:Snap.Hutao.Model.Metadata.Converter" - xmlns:shvc="using:Snap.Hutao.View.Converter"> + xmlns:cwm="using:CommunityToolkit.WinUI.Media"> + + + + + + - @@ -38,11 +38,6 @@ 4,4,0,0 0,0,4,4 - 6 - 6,6,0,0 - 0,6,6,0 - 0,0,6,6 - 2 288 212 @@ -61,70 +56,6 @@ - - https://hut.ao/features/mhy-account-switch.html - https://hut.ao/statements/bug-report.html - https://translate.hut.ao - https://hut.ao - https://github.com/HolographicHat/GetToken/releases/latest - https://afdian.net/a/DismissedLight - - - https://static.snapgenshin.com/Bg/UI_ItemIcon_None.png - https://static.snapgenshin.com/Bg/UI_MarkTower.png - https://static.snapgenshin.com/Bg/UI_Icon_Intee_Explore_1.png - https://static.snapgenshin.com/Bg/UI_MarkQuest_Events_Proce.png - https://static.snapgenshin.com/ItemIcon/UI_ItemIcon_201.png - https://static.snapgenshin.com/ItemIcon/UI_ItemIcon_204.png - https://static.snapgenshin.com/ItemIcon/UI_ItemIcon_210.png - https://static.snapgenshin.com/ItemIcon/UI_ItemIcon_220021.png - https://static.snapgenshin.com/Bg/UI_ImgSign_ItemIcon.png - https://static.snapgenshin.com/AvatarCard/UI_AvatarIcon_Costume_Card.png - https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon25.png - https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon71.png - https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon250.png - https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon272.png - https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon293.png - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Theme/Converter.xaml b/src/Snap.Hutao/Snap.Hutao/Control/Theme/Converter.xaml new file mode 100644 index 00000000..beef99ac --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Control/Theme/Converter.xaml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Theme/FontStyle.xaml b/src/Snap.Hutao/Snap.Hutao/Control/Theme/FontStyle.xaml index 18fd7359..3d7f052c 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Theme/FontStyle.xaml +++ b/src/Snap.Hutao/Snap.Hutao/Control/Theme/FontStyle.xaml @@ -1,7 +1,4 @@ - + ms-appx:///Resource/Font/MiSans-Regular.ttf#MiSans ms-appx:///Resource/Font/CascadiaMono.ttf#Cascadia Mono, ms-appx:///Resource/Font/MiSans-Regular.ttf#MiSans diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Theme/Glyph.xaml b/src/Snap.Hutao/Snap.Hutao/Control/Theme/Glyph.xaml new file mode 100644 index 00000000..8e5db5ad --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Control/Theme/Glyph.xaml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Theme/ItemsPanelTemplate.xaml b/src/Snap.Hutao/Snap.Hutao/Control/Theme/ItemsPanelTemplate.xaml new file mode 100644 index 00000000..46d10041 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Control/Theme/ItemsPanelTemplate.xaml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Theme/SettingsStyle.xaml b/src/Snap.Hutao/Snap.Hutao/Control/Theme/SettingsStyle.xaml index 144c250c..f0182d63 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Theme/SettingsStyle.xaml +++ b/src/Snap.Hutao/Snap.Hutao/Control/Theme/SettingsStyle.xaml @@ -18,4 +18,14 @@ TargetType="ComboBox"> + diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Theme/Uri.xaml b/src/Snap.Hutao/Snap.Hutao/Control/Theme/Uri.xaml new file mode 100644 index 00000000..3e50461f --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Control/Theme/Uri.xaml @@ -0,0 +1,34 @@ + + + https://hut.ao/statements/bug-report.html + https://hut.ao + https://hut.ao/features/mhy-account-switch.html + https://translate.hut.ao + + + https://github.com/HolographicHat/GetToken/releases/latest + https://afdian.net/a/DismissedLight + + + https://static.snapgenshin.com/AvatarCard/UI_AvatarIcon_Costume_Card.png + + + https://static.snapgenshin.com/Bg/UI_Icon_Intee_Explore_1.png + https://static.snapgenshin.com/Bg/UI_ImgSign_ItemIcon.png + https://static.snapgenshin.com/Bg/UI_ItemIcon_None.png + https://static.snapgenshin.com/Bg/UI_MarkQuest_Events_Proce.png + https://static.snapgenshin.com/Bg/UI_MarkTower.png + + + https://static.snapgenshin.com/ItemIcon/UI_ItemIcon_201.png + https://static.snapgenshin.com/ItemIcon/UI_ItemIcon_204.png + https://static.snapgenshin.com/ItemIcon/UI_ItemIcon_210.png + https://static.snapgenshin.com/ItemIcon/UI_ItemIcon_220021.png + + + https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon25.png + https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon71.png + https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon250.png + https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon272.png + https://static.snapgenshin.com/EmotionIcon/UI_EmotionIcon293.png + diff --git a/src/Snap.Hutao/Snap.Hutao/Core/Windowing/WindowController.cs b/src/Snap.Hutao/Snap.Hutao/Core/Windowing/WindowController.cs index a8d085e1..946fc5bc 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/Windowing/WindowController.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/Windowing/WindowController.cs @@ -114,8 +114,10 @@ internal sealed class WindowController { if (e.PropertyName == nameof(AppOptions.BackdropType)) { - ArgumentNullException.ThrowIfNull(sender); - UpdateSystemBackdrop(((AppOptions)sender).BackdropType); + if (sender is AppOptions options) + { + UpdateSystemBackdrop(options.BackdropType); + } } } diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj index 67d6b18a..96fc52e9 100644 --- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj +++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj @@ -72,14 +72,19 @@ + + + + + @@ -303,6 +308,36 @@ + + + MSBuild:Compile + + + + + + MSBuild:Compile + + + + + + MSBuild:Compile + + + + + + MSBuild:Compile + + + + + + MSBuild:Compile + + + MSBuild:Compile From 8de526274a6381b8e5ef2627890d83c3b55703e0 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Tue, 10 Oct 2023 22:28:53 +0800 Subject: [PATCH 3/9] fix #1005 --- src/Snap.Hutao/Snap.Hutao/View/Page/LoginMihoyoUserPage.xaml.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/LoginMihoyoUserPage.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Page/LoginMihoyoUserPage.xaml.cs index 1863556e..c32a41d0 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/LoginMihoyoUserPage.xaml.cs +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/LoginMihoyoUserPage.xaml.cs @@ -44,7 +44,7 @@ internal sealed partial class LoginMihoyoUserPage : Microsoft.UI.Xaml.Controls.P IReadOnlyList cookies = await WebView.CoreWebView2.CookieManager.GetCookiesAsync("https://user.mihoyo.com"); Cookie webCookie = Cookie.FromCoreWebView2Cookies(cookies); - if (!webCookie.TryGetCookieToken(out Cookie? loginTicketCookie)) + if (!webCookie.TryGetLoginTicket(out Cookie? loginTicketCookie)) { return; } From e7233fbf2aa639da768b60eab2c4073ee5d8ef87 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Wed, 11 Oct 2023 20:50:21 +0800 Subject: [PATCH 4/9] fix #1007 --- src/Snap.Hutao/Snap.Hutao/View/Page/ISupportLoginByWebView.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/ISupportLoginByWebView.cs b/src/Snap.Hutao/Snap.Hutao/View/Page/ISupportLoginByWebView.cs index 357aa8a8..34046301 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/ISupportLoginByWebView.cs +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/ISupportLoginByWebView.cs @@ -17,11 +17,11 @@ internal interface ISupportLoginByWebView try { await webView2.EnsureCoreWebView2Async(); - await webView2.CoreWebView2.DeleteCookiesAsync("https://user.mihoyo.com").ConfigureAwait(true); + await webView2.CoreWebView2.DeleteCookiesAsync(cookie).ConfigureAwait(true); webView2.CoreWebView2.DisableDevToolsOnReleaseBuild(); webView2.CoreWebView2.DisableAutoCompletion(); - webView2.CoreWebView2.Navigate("https://user.mihoyo.com/#/login/password"); + webView2.CoreWebView2.Navigate(navigate); } catch (Exception ex) { From 61dd098d950b94b4e9152af1c22025001b83ff36 Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Wed, 11 Oct 2023 22:12:07 +0800 Subject: [PATCH 5/9] fix #1003 --- .../Core/ExceptionService/ExceptionRecorder.cs | 4 ---- .../Snap.Hutao/View/Control/WebViewer.xaml.cs | 15 +++++++++------ .../Web/Bridge/CoreWebView2Extension.cs | 13 ++++++++++--- .../Snap.Hutao/Web/Bridge/MiHoYoJSInterface.cs | 17 +++++++++++++---- 4 files changed, 32 insertions(+), 17 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionRecorder.cs b/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionRecorder.cs index 979b767b..358f83b8 100644 --- a/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionRecorder.cs +++ b/src/Snap.Hutao/Snap.Hutao/Core/ExceptionService/ExceptionRecorder.cs @@ -14,9 +14,7 @@ namespace Snap.Hutao.Core.ExceptionService; internal sealed partial class ExceptionRecorder { private readonly ILogger logger; -#if RELEASE private readonly IServiceProvider serviceProvider; -#endif /// /// 记录应用程序异常 @@ -31,13 +29,11 @@ internal sealed partial class ExceptionRecorder private void OnAppUnhandledException(object? sender, Microsoft.UI.Xaml.UnhandledExceptionEventArgs e) { -#if RELEASE serviceProvider .GetRequiredService() .UploadLogAsync(e.Exception) .GetAwaiter() .GetResult(); -#endif logger.LogError("未经处理的全局异常:\r\n{Detail}", ExceptionFormat.Format(e.Exception)); } diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/WebViewer.xaml.cs b/src/Snap.Hutao/Snap.Hutao/View/Control/WebViewer.xaml.cs index 480e2a44..e9326fa2 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Control/WebViewer.xaml.cs +++ b/src/Snap.Hutao/Snap.Hutao/View/Control/WebViewer.xaml.cs @@ -2,8 +2,10 @@ // Licensed under the MIT license. using CommunityToolkit.Mvvm.Messaging; +using Microsoft.UI.Content; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Hosting; using Microsoft.Web.WebView2.Core; using Snap.Hutao.Message; using Snap.Hutao.Service.Notification; @@ -20,7 +22,6 @@ internal partial class WebViewer : UserControl, IRecipient private readonly RoutedEventHandler loadEventHandler; private readonly RoutedEventHandler unloadEventHandler; - [SuppressMessage("", "IDE0052")] private MiHoYoJSInterface? jsInterface; public WebViewer() @@ -49,7 +50,6 @@ internal partial class WebViewer : UserControl, IRecipient private void OnUnloaded(object sender, RoutedEventArgs e) { - jsInterface = null; Loaded -= loadEventHandler; Unloaded -= unloadEventHandler; } @@ -86,13 +86,16 @@ internal partial class WebViewer : UserControl, IRecipient string source = SourceProvider.GetSource(userAndUid); if (!string.IsNullOrEmpty(source)) { - await coreWebView2.DeleteCookiesAsync(".mihoyo.com").ConfigureAwait(true); - coreWebView2.SetCookie(user.CookieToken, user.LToken, user.SToken); - _ = userAndUid.User.IsOversea ? coreWebView2.SetMobileOverseaUserAgent() : coreWebView2.SetMobileUserAgent(); - jsInterface = SourceProvider.CreateJsInterface(serviceProvider, coreWebView2, userAndUid); + await coreWebView2.Profile.ClearBrowsingDataAsync(); CoreWebView2Navigator navigator = new(coreWebView2); await navigator.NavigateAsync("about:blank").ConfigureAwait(true); + + coreWebView2.SetCookie(user.CookieToken, user.LToken, user.SToken); + _ = userAndUid.User.IsOversea ? coreWebView2.SetMobileOverseaUserAgent() : coreWebView2.SetMobileUserAgent(); + jsInterface?.Detach(); + jsInterface = SourceProvider.CreateJsInterface(serviceProvider, coreWebView2, userAndUid); + await navigator.NavigateAsync(source).ConfigureAwait(true); } } diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Bridge/CoreWebView2Extension.cs b/src/Snap.Hutao/Snap.Hutao/Web/Bridge/CoreWebView2Extension.cs index afde86ed..fd763312 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Bridge/CoreWebView2Extension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Bridge/CoreWebView2Extension.cs @@ -76,17 +76,24 @@ internal static class CoreWebView2Extension if (cookieToken is not null) { - cookieManager.AddMihoyoCookie(Cookie.ACCOUNT_ID, cookieToken, isOversea).AddMihoyoCookie(Cookie.COOKIE_TOKEN, cookieToken, isOversea); + cookieManager + .AddMihoyoCookie(Cookie.ACCOUNT_ID, cookieToken, isOversea) + .AddMihoyoCookie(Cookie.COOKIE_TOKEN, cookieToken, isOversea); } if (lToken is not null) { - cookieManager.AddMihoyoCookie(Cookie.LTUID, lToken, isOversea).AddMihoyoCookie(Cookie.LTOKEN, lToken, isOversea); + cookieManager + .AddMihoyoCookie(Cookie.LTUID, lToken, isOversea) + .AddMihoyoCookie(Cookie.LTOKEN, lToken, isOversea); } if (sToken is not null) { - cookieManager.AddMihoyoCookie(Cookie.STUID, sToken, isOversea).AddMihoyoCookie(Cookie.STOKEN, sToken, isOversea); + cookieManager + .AddMihoyoCookie(Cookie.MID, sToken, isOversea) + .AddMihoyoCookie(Cookie.STUID, sToken, isOversea) + .AddMihoyoCookie(Cookie.STOKEN, sToken, isOversea); } return webView; diff --git a/src/Snap.Hutao/Snap.Hutao/Web/Bridge/MiHoYoJSInterface.cs b/src/Snap.Hutao/Snap.Hutao/Web/Bridge/MiHoYoJSInterface.cs index 22dbc19d..fb4911ec 100644 --- a/src/Snap.Hutao/Snap.Hutao/Web/Bridge/MiHoYoJSInterface.cs +++ b/src/Snap.Hutao/Snap.Hutao/Web/Bridge/MiHoYoJSInterface.cs @@ -39,9 +39,10 @@ internal class MiHoYoJSInterface document.querySelector('body').appendChild(st); """; + private readonly Guid interfaceId = Guid.NewGuid(); private readonly IServiceProvider serviceProvider; - private readonly CoreWebView2 webView; private readonly UserAndUid userAndUid; + private CoreWebView2 webView; private readonly ITaskContext taskContext; private readonly ILogger logger; @@ -342,6 +343,14 @@ internal class MiHoYoJSInterface throw new NotImplementedException(); } + public void Detach() + { + webView.WebMessageReceived -= webMessageReceivedEventHandler; + webView.DOMContentLoaded -= domContentLoadedEventHandler; + webView.NavigationStarting -= navigationStartingEventHandler; + webView = default!; + } + private async ValueTask ExecuteCallbackScriptAsync(string callback, string? payload = null) { if (string.IsNullOrEmpty(callback)) @@ -360,7 +369,7 @@ internal class MiHoYoJSInterface .Append(')') .ToString(); - logger?.LogInformation("[ExecuteScript: {callback}]\n{payload}", callback, payload); + logger?.LogInformation("[{Id}][ExecuteScript: {callback}]\n{payload}", interfaceId, callback, payload); await taskContext.SwitchToMainThreadAsync(); try @@ -378,7 +387,7 @@ internal class MiHoYoJSInterface private async void OnWebMessageReceived(CoreWebView2 webView2, CoreWebView2WebMessageReceivedEventArgs args) { string message = args.TryGetWebMessageAsString(); - logger.LogInformation("[OnRawMessage]\n{message}", message); + logger.LogInformation("[{Id}][OnRawMessage]\n{message}", interfaceId, message); JsParam? param = JsonSerializer.Deserialize(message); ArgumentNullException.ThrowIfNull(param); @@ -445,7 +454,7 @@ internal class MiHoYoJSInterface if (uriHostSpan.EndsWith("mihoyo.com") || uriHostSpan.EndsWith("hoyolab.com")) { // Execute this solve issue: When open same site second time,there might be no bridge init. - coreWebView2.AddScriptToExecuteOnDocumentCreatedAsync(InitializeJsInterfaceScript2).AsTask().SafeForget(logger); + // coreWebView2.AddScriptToExecuteOnDocumentCreatedAsync(InitializeJsInterfaceScript2).AsTask().SafeForget(logger); coreWebView2.ExecuteScriptAsync(InitializeJsInterfaceScript2).AsTask().SafeForget(logger); } } From 20ad9aec609c44bdc3044fadf03fedffebe73ede Mon Sep 17 00:00:00 2001 From: DismissedLight <1686188646@qq.com> Date: Wed, 11 Oct 2023 22:28:10 +0800 Subject: [PATCH 6/9] fix 1.7.7 log upload issue --- src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml | 7 +++++++ src/Snap.Hutao/Snap.Hutao/ViewModel/TestViewModel.cs | 6 ++++++ .../Snap.Hutao/Web/Hutao/Log/HomaLogUploadClient.cs | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml index 8b9f1321..8e8541f1 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/TestPage.xaml @@ -95,6 +95,12 @@ Header="Compensation GachaLog Service Time For 15 Days" IsClickEnabled="True"/> + + + [Injection(InjectAs.Singleton)] -internal sealed partial class GuideWindow : Window, IWindowOptionsSource +internal sealed partial class GuideWindow : Window, IWindowOptionsSource, IMinMaxInfoHandler { private const int MinWidth = 1000; private const int MinHeight = 600; @@ -30,11 +30,11 @@ internal sealed partial class GuideWindow : Window, IWindowOptionsSource WindowOptions IWindowOptionsSource.WindowOptions { get => windowOptions; } - public unsafe void ProcessMinMaxInfo(MINMAXINFO* pInfo, double scalingFactor) + public unsafe void HandleMinMaxInfo(ref MINMAXINFO info, double scalingFactor) { - pInfo->ptMinTrackSize.X = (int)Math.Max(MinWidth * scalingFactor, pInfo->ptMinTrackSize.X); - pInfo->ptMinTrackSize.Y = (int)Math.Max(MinHeight * scalingFactor, pInfo->ptMinTrackSize.Y); - pInfo->ptMaxTrackSize.X = (int)Math.Min(MaxWidth * scalingFactor, pInfo->ptMaxTrackSize.X); - pInfo->ptMaxTrackSize.Y = (int)Math.Min(MaxHeight * scalingFactor, pInfo->ptMaxTrackSize.Y); + info.ptMinTrackSize.X = (int)Math.Max(MinWidth * scalingFactor, info.ptMinTrackSize.X); + info.ptMinTrackSize.Y = (int)Math.Max(MinHeight * scalingFactor, info.ptMinTrackSize.Y); + info.ptMaxTrackSize.X = (int)Math.Min(MaxWidth * scalingFactor, info.ptMaxTrackSize.X); + info.ptMaxTrackSize.Y = (int)Math.Min(MaxHeight * scalingFactor, info.ptMaxTrackSize.Y); } } diff --git a/src/Snap.Hutao/Snap.Hutao/LaunchGameWindow.xaml.cs b/src/Snap.Hutao/Snap.Hutao/LaunchGameWindow.xaml.cs index cba90226..43d75331 100644 --- a/src/Snap.Hutao/Snap.Hutao/LaunchGameWindow.xaml.cs +++ b/src/Snap.Hutao/Snap.Hutao/LaunchGameWindow.xaml.cs @@ -13,7 +13,7 @@ namespace Snap.Hutao; /// [HighQuality] [Injection(InjectAs.Singleton)] -internal sealed partial class LaunchGameWindow : Window, IDisposable, IWindowOptionsSource +internal sealed partial class LaunchGameWindow : Window, IDisposable, IWindowOptionsSource, IMinMaxInfoHandler { private const int MinWidth = 240; private const int MinHeight = 240; @@ -48,11 +48,11 @@ internal sealed partial class LaunchGameWindow : Window, IDisposable, IWindowOpt } /// - public unsafe void ProcessMinMaxInfo(MINMAXINFO* pInfo, double scalingFactor) + public unsafe void HandleMinMaxInfo(ref MINMAXINFO info, double scalingFactor) { - pInfo->ptMinTrackSize.X = (int)Math.Max(MinWidth * scalingFactor, pInfo->ptMinTrackSize.X); - pInfo->ptMinTrackSize.Y = (int)Math.Max(MinHeight * scalingFactor, pInfo->ptMinTrackSize.Y); - pInfo->ptMaxTrackSize.X = (int)Math.Min(MaxWidth * scalingFactor, pInfo->ptMaxTrackSize.X); - pInfo->ptMaxTrackSize.Y = (int)Math.Min(MaxHeight * scalingFactor, pInfo->ptMaxTrackSize.Y); + info.ptMinTrackSize.X = (int)Math.Max(MinWidth * scalingFactor, info.ptMinTrackSize.X); + info.ptMinTrackSize.Y = (int)Math.Max(MinHeight * scalingFactor, info.ptMinTrackSize.Y); + info.ptMaxTrackSize.X = (int)Math.Min(MaxWidth * scalingFactor, info.ptMaxTrackSize.X); + info.ptMaxTrackSize.Y = (int)Math.Min(MaxHeight * scalingFactor, info.ptMaxTrackSize.Y); } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml.cs b/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml.cs index e49d951d..52532905 100644 --- a/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml.cs +++ b/src/Snap.Hutao/Snap.Hutao/MainWindow.xaml.cs @@ -14,7 +14,7 @@ namespace Snap.Hutao; [HighQuality] [Injection(InjectAs.Singleton)] [SuppressMessage("", "CA1001")] -internal sealed partial class MainWindow : Window, IWindowOptionsSource +internal sealed partial class MainWindow : Window, IWindowOptionsSource, IMinMaxInfoHandler { private const int MinWidth = 848; private const int MinHeight = 524; @@ -46,10 +46,10 @@ internal sealed partial class MainWindow : Window, IWindowOptionsSource public WindowOptions WindowOptions { get => windowOptions; } /// - public unsafe void ProcessMinMaxInfo(MINMAXINFO* pInfo, double scalingFactor) + public unsafe void HandleMinMaxInfo(ref MINMAXINFO pInfo, double scalingFactor) { - pInfo->ptMinTrackSize.X = (int)Math.Max(MinWidth * scalingFactor, pInfo->ptMinTrackSize.X); - pInfo->ptMinTrackSize.Y = (int)Math.Max(MinHeight * scalingFactor, pInfo->ptMinTrackSize.Y); + pInfo.ptMinTrackSize.X = (int)Math.Max(MinWidth * scalingFactor, pInfo.ptMinTrackSize.X); + pInfo.ptMinTrackSize.Y = (int)Math.Max(MinHeight * scalingFactor, pInfo.ptMinTrackSize.Y); } private void OnClosed(object sender, WindowEventArgs args) diff --git a/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json b/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json index a5fb2a14..36a6b395 100644 --- a/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json +++ b/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "Snap.Hutao": { "commandName": "MsixPackage", - "nativeDebugging": false, + "nativeDebugging": true, "doNotLaunchApp": false, "allowLocalNetworkLoopbackProperty": true }, diff --git a/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/GameFpsUnlocker.cs b/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/GameFpsUnlocker.cs index e7a0ed68..b7d3178b 100644 --- a/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/GameFpsUnlocker.cs +++ b/src/Snap.Hutao/Snap.Hutao/Service/Game/Unlocker/GameFpsUnlocker.cs @@ -235,7 +235,7 @@ internal sealed class GameFpsUnlocker : IGameFpsUnlocker using (localMemory) { - int offset = IndexOfPattern(localMemory.Span[(int)moduleEntryInfo.UnityPlayer.Size..]); + int offset = IndexOfPattern(localMemory.AsSpan()[(int)moduleEntryInfo.UnityPlayer.Size..]); Must.Range(offset >= 0, SH.ServiceGameUnlockerInterestedPatternNotFound); byte* pLocalMemory = (byte*)localMemory.Pointer; diff --git a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj index 96fc52e9..93573a54 100644 --- a/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj +++ b/src/Snap.Hutao/Snap.Hutao/Snap.Hutao.csproj @@ -75,11 +75,16 @@ + + + + + @@ -244,12 +249,12 @@ - - - - - - + + + + + + @@ -258,8 +263,8 @@ - - + + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -267,7 +272,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive @@ -308,6 +313,36 @@ + + + MSBuild:Compile + + + + + + MSBuild:Compile + + + + + + MSBuild:Compile + + + + + + MSBuild:Compile + + + + + + MSBuild:Compile + + + MSBuild:Compile diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/GachaStatisticsCard.xaml b/src/Snap.Hutao/Snap.Hutao/View/Card/GachaStatisticsCard.xaml index b77f3fc6..be224ffb 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Card/GachaStatisticsCard.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Card/GachaStatisticsCard.xaml @@ -66,16 +66,16 @@ Description="{Binding LastOrangePull}" Header="{shcm:ResourceString Name=ViewControlStatisticsCardOrangeText}" Maximum="{Binding GuaranteeOrangeThreshold}" - ProgressForeground="{StaticResource OrangeBrush}" - TextForeground="{StaticResource OrangeBrush}" + ProgressForeground="{StaticResource OrangeColorBrush}" + TextForeground="{StaticResource OrangeColorBrush}" Value="{Binding LastOrangePull}"/> @@ -98,16 +98,16 @@ Description="{Binding LastOrangePull}" Header="{shcm:ResourceString Name=ViewControlStatisticsCardOrangeText}" Maximum="{Binding GuaranteeOrangeThreshold}" - ProgressForeground="{StaticResource OrangeBrush}" - TextForeground="{StaticResource OrangeBrush}" + ProgressForeground="{StaticResource OrangeColorBrush}" + TextForeground="{StaticResource OrangeColorBrush}" Value="{Binding LastOrangePull}"/> @@ -129,16 +129,16 @@ Description="{Binding LastOrangePull}" Header="{shcm:ResourceString Name=ViewControlStatisticsCardOrangeText}" Maximum="{Binding GuaranteeOrangeThreshold}" - ProgressForeground="{StaticResource OrangeBrush}" - TextForeground="{StaticResource OrangeBrush}" + ProgressForeground="{StaticResource OrangeColorBrush}" + TextForeground="{StaticResource OrangeColorBrush}" Value="{Binding LastOrangePull}"/> diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardBlock.xaml b/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardBlock.xaml index 33faaff1..7d7dccaa 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardBlock.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardBlock.xaml @@ -6,7 +6,7 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:shch="using:Snap.Hutao.Control.Helper" xmlns:shci="using:Snap.Hutao.Control.Image" - Style="{StaticResource BorderGridStyle}" + Style="{ThemeResource GridCardStyle}" mc:Ignorable="d"> diff --git a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.xaml b/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.xaml index d3fb37cf..8c622def 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Card/Primitive/CardProgressBar.xaml @@ -5,7 +5,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" MinHeight="40" - Style="{StaticResource BorderGridStyle}" + Style="{ThemeResource GridCardStyle}" mc:Ignorable="d"> diff --git a/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsCard.xaml b/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsCard.xaml index 75365135..028c986f 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsCard.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Control/HutaoStatisticsCard.xaml @@ -26,7 +26,7 @@ - + @@ -36,7 +36,7 @@ Grid.Row="0" cw:UIElementExtensions.ClipToBounds="True" CornerRadius="{StaticResource ControlCornerRadiusTop}" - Style="{StaticResource BorderGridStyle}"> + Style="{ThemeResource GridCardStyle}"> - + @@ -59,13 +59,13 @@ @@ -103,7 +103,7 @@ - + @@ -181,8 +181,8 @@ Description="{Binding LastOrangePull}" Header="{shcm:ResourceString Name=ViewControlStatisticsCardToLastOrangeText}" Maximum="{Binding GuaranteeOrangeThreshold}" - ProgressForeground="{StaticResource OrangeBrush}" - TextForeground="{StaticResource OrangeBrush}" + ProgressForeground="{StaticResource OrangeColorBrush}" + TextForeground="{StaticResource OrangeColorBrush}" Value="{Binding LastOrangePull}"/> @@ -243,37 +243,37 @@ diff --git a/src/Snap.Hutao/Snap.Hutao/View/Dialog/CultivatePromotionDeltaDialog.xaml b/src/Snap.Hutao/Snap.Hutao/View/Dialog/CultivatePromotionDeltaDialog.xaml index 7d0de834..71055f38 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Dialog/CultivatePromotionDeltaDialog.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Dialog/CultivatePromotionDeltaDialog.xaml @@ -76,7 +76,7 @@ + Style="{ThemeResource GridCardStyle}"> @@ -129,7 +129,7 @@ + Style="{ThemeResource GridCardStyle}"> diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml index 35679ff6..8aef9263 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/AvatarPropertyPage.xaml @@ -314,7 +314,7 @@ HorizontalAlignment="Left"> - + @@ -636,7 +636,7 @@ Grid.Column="3" Margin="8,0,0,0" HorizontalAlignment="Left" - Foreground="{StaticResource AvatarPropertyAddValueBrush}" + Foreground="{StaticResource AvatarPropertyAddValueColorBrush}" Text="{Binding AddValue}"/> diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml index cef97178..3ea16f55 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/DailyNotePage.xaml @@ -193,7 +193,7 @@ - + @@ -284,7 +284,7 @@ Grid.Row="1" Margin="0,8,0,0" Spacing="6"> - + @@ -321,7 +321,7 @@ TextWrapping="NoWrap"/> - + @@ -358,7 +358,7 @@ TextWrapping="NoWrap"/> - + @@ -395,7 +395,7 @@ TextWrapping="NoWrap"/> - + @@ -432,7 +432,7 @@ TextWrapping="NoWrap"/> - + @@ -487,7 +487,7 @@ - + diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml index 7270a3d5..23a69bd9 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/SettingPage.xaml @@ -21,7 +21,7 @@ - + - + diff --git a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiWeaponPage.xaml b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiWeaponPage.xaml index 2d5b567b..10410981 100644 --- a/src/Snap.Hutao/Snap.Hutao/View/Page/WikiWeaponPage.xaml +++ b/src/Snap.Hutao/Snap.Hutao/View/Page/WikiWeaponPage.xaml @@ -134,7 +134,7 @@ - + uint Size { get; } - - /// - /// Gets a span of bytes from the current instance. - /// - Span Span { get; } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Memory/UnmanagedMemoryExtension.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Memory/UnmanagedMemoryExtension.cs new file mode 100644 index 00000000..b8873ba8 --- /dev/null +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Memory/UnmanagedMemoryExtension.cs @@ -0,0 +1,12 @@ +// Copyright (c) DGP Studio. All rights reserved. +// Licensed under the MIT license. + +namespace Snap.Hutao.Win32.Memory; + +internal static class UnmanagedMemoryExtension +{ + public static unsafe Span AsSpan(this IUnmanagedMemory unmanagedMemory) + { + return new(unmanagedMemory.Pointer, (int)unmanagedMemory.Size); + } +} \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Win32/Memory/VirtualMemory.cs b/src/Snap.Hutao/Snap.Hutao/Win32/Memory/VirtualMemory.cs index 4b629e12..a0787a65 100644 --- a/src/Snap.Hutao/Snap.Hutao/Win32/Memory/VirtualMemory.cs +++ b/src/Snap.Hutao/Snap.Hutao/Win32/Memory/VirtualMemory.cs @@ -7,7 +7,7 @@ using static Windows.Win32.PInvoke; namespace Snap.Hutao.Win32.Memory; /// -/// NativeMemory.AllocZeroed wrapper +/// VirtualAlloc wrapper /// internal readonly unsafe struct VirtualMemory : IUnmanagedMemory { @@ -38,9 +38,6 @@ internal readonly unsafe struct VirtualMemory : IUnmanagedMemory /// public uint Size { get => size; } - /// - public Span Span { get => new(pointer, (int)size); } - /// public void Dispose() { From 457e3c4af2d3412a340b08601ec6251d59fe65b1 Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Thu, 12 Oct 2023 16:45:59 +0800 Subject: [PATCH 8/9] LoadImageSurfaceAsync fix --- .../Control/Image/CompositionImage.cs | 26 ++++++++++++++----- .../Snap.Hutao/Extension/StructExtension.cs | 5 ++++ .../Snap.Hutao/Properties/launchSettings.json | 2 +- 3 files changed, 26 insertions(+), 7 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Image/CompositionImage.cs b/src/Snap.Hutao/Snap.Hutao/Control/Image/CompositionImage.cs index 73edd26f..da2127fa 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Image/CompositionImage.cs +++ b/src/Snap.Hutao/Snap.Hutao/Control/Image/CompositionImage.cs @@ -164,11 +164,26 @@ internal abstract partial class CompositionImage : Microsoft.UI.Xaml.Controls.Co private async ValueTask LoadImageSurfaceAsync(string file, CancellationToken token) { surfaceLoadTaskCompletionSource = new(); - LoadedImageSurface surface = LoadedImageSurface.StartLoadFromUri(file.ToUri()); - surface.LoadCompleted += loadedImageSourceLoadCompletedEventHandler; - await surfaceLoadTaskCompletionSource.Task.ConfigureAwait(true); - LoadImageSurfaceCompleted(surface); - return surface; + LoadedImageSurface? surface = default; + try + { + surface = LoadedImageSurface.StartLoadFromUri(file.ToUri()); + surface.LoadCompleted += loadedImageSourceLoadCompletedEventHandler; + if (surface.NaturalSize.Size() <= 0D) + { + await surfaceLoadTaskCompletionSource.Task.ConfigureAwait(true); + } + + LoadImageSurfaceCompleted(surface); + return surface; + } + finally + { + if (surface is not null) + { + surface.LoadCompleted -= loadedImageSourceLoadCompletedEventHandler; + } + } } private async ValueTask ShowAsync(CancellationToken token) @@ -216,7 +231,6 @@ internal abstract partial class CompositionImage : Microsoft.UI.Xaml.Controls.Co private void OnLoadImageSurfaceLoadCompleted(LoadedImageSurface surface, LoadedImageSourceLoadCompletedEventArgs e) { surfaceLoadTaskCompletionSource?.TrySetResult(); - surface.LoadCompleted -= loadedImageSourceLoadCompletedEventHandler; } private void OnSizeChanged(object sender, SizeChangedEventArgs e) diff --git a/src/Snap.Hutao/Snap.Hutao/Extension/StructExtension.cs b/src/Snap.Hutao/Snap.Hutao/Extension/StructExtension.cs index bb009b57..c8b7f949 100644 --- a/src/Snap.Hutao/Snap.Hutao/Extension/StructExtension.cs +++ b/src/Snap.Hutao/Snap.Hutao/Extension/StructExtension.cs @@ -62,4 +62,9 @@ internal static class StructExtension { return sizeInt32.Width * sizeInt32.Height; } + + public static double Size(this Windows.Foundation.Size size) + { + return size.Width * size.Height; + } } \ No newline at end of file diff --git a/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json b/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json index 36a6b395..a5fb2a14 100644 --- a/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json +++ b/src/Snap.Hutao/Snap.Hutao/Properties/launchSettings.json @@ -2,7 +2,7 @@ "profiles": { "Snap.Hutao": { "commandName": "MsixPackage", - "nativeDebugging": true, + "nativeDebugging": false, "doNotLaunchApp": false, "allowLocalNetworkLoopbackProperty": true }, From a34b5a5101a458f49f430c62d7883f8be82615af Mon Sep 17 00:00:00 2001 From: Lightczx <1686188646@qq.com> Date: Thu, 12 Oct 2023 16:58:29 +0800 Subject: [PATCH 9/9] style --- src/Snap.Hutao/Snap.Hutao/Control/Theme/Color.xaml | 6 ++---- src/Snap.Hutao/Snap.Hutao/Control/Theme/NumericValue.xaml | 4 ++-- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Theme/Color.xaml b/src/Snap.Hutao/Snap.Hutao/Control/Theme/Color.xaml index 9218c5fd..8557c744 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Theme/Color.xaml +++ b/src/Snap.Hutao/Snap.Hutao/Control/Theme/Color.xaml @@ -1,6 +1,4 @@ - + #FF74BF00 @@ -24,7 +22,7 @@ - + diff --git a/src/Snap.Hutao/Snap.Hutao/Control/Theme/NumericValue.xaml b/src/Snap.Hutao/Snap.Hutao/Control/Theme/NumericValue.xaml index 49606612..89cef2a7 100644 --- a/src/Snap.Hutao/Snap.Hutao/Control/Theme/NumericValue.xaml +++ b/src/Snap.Hutao/Snap.Hutao/Control/Theme/NumericValue.xaml @@ -1,14 +1,14 @@  288 - + 212 304 320 180 64 100 - + 0.2