From 578ffb7c56f1ceea1703bb7f111962e5b315d1bf Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sat, 25 Apr 2026 16:31:11 +0800 Subject: [PATCH] =?UTF-8?q?improve:=E5=85=BC=E5=AE=B9=E6=80=A7=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Ink Canvas/MainWindow.xaml.cs | 47 +++++++++++++++++++++++++++++++---- 1 file changed, 42 insertions(+), 5 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index bcada1e9..542c526e 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -1506,7 +1506,7 @@ namespace Ink_Canvas { try { - if (IsNetCompatibilityChangeConfirmed()) + if (IsNetCompatibilityChangePromptAcknowledged() || IsNetCompatibilityChangeConfirmed()) { return; } @@ -1516,10 +1516,7 @@ namespace Ink_Canvas "兼容性变更", MessageBoxButton.OK, MessageBoxImage.Warning); - - // 用户关闭提示后即视为已知晓,持久化后下次启动不再弹出(与设置内「确认」按钮一致)。 - PersistNetCompatibilityChangeConfirmation(); - ApplyNetCompatibilityConfirmationGateToUpdateSettingsUi(); + PersistNetCompatibilityChangePromptAcknowledgement(); } catch (Exception ex) { @@ -1549,6 +1546,46 @@ namespace Ink_Canvas return Path.Combine(App.RootPath, "Configs", "NetCompatibilityConfirmed.flag"); } + private string GetNetCompatibilityPromptAcknowledgedFlagPath() + { + return Path.Combine(App.RootPath, "Configs", "NetCompatibilityPromptAcknowledged.flag"); + } + + private bool IsNetCompatibilityChangePromptAcknowledged() + { + try + { + return File.Exists(GetNetCompatibilityPromptAcknowledgedFlagPath()); + } + catch (Exception ex) + { + LogHelper.WriteLogToFile($"读取兼容性提示弹窗标记失败: {ex.Message}", LogHelper.LogType.Error); + return false; + } + } + + private void PersistNetCompatibilityChangePromptAcknowledgement() + { + try + { + var flagPath = GetNetCompatibilityPromptAcknowledgedFlagPath(); + var dir = Path.GetDirectoryName(flagPath); + if (!string.IsNullOrWhiteSpace(dir) && !Directory.Exists(dir)) + { + Directory.CreateDirectory(dir); + } + + if (!File.Exists(flagPath)) + { + File.WriteAllText(flagPath, "acknowledged=true"); + } + } + catch (Exception ex) + { + LogHelper.WriteLogToFile($"写入兼容性提示弹窗标记失败: {ex.Message}", LogHelper.LogType.Error); + } + } + private bool IsNetCompatibilityChangeConfirmed() { if (Settings?.Startup?.HasConfirmedNetCompatibilityChange == true)