From 51dcc374ce8f5d3394d0a17f011684564978f646 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Sat, 18 Apr 2026 17:23:21 +0800 Subject: [PATCH] =?UTF-8?q?add:=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 | 59 +++++++++++++++++++ Ink Canvas/MainWindow.xaml.cs | 28 +++++++++ Ink Canvas/MainWindow_cs/MW_Settings.cs | 59 ++++++++++++++++++- Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs | 24 +++++++- Ink Canvas/Resources/Settings.cs | 2 + 5 files changed, 170 insertions(+), 2 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml b/Ink Canvas/MainWindow.xaml index 56644230..8a69f7f6 100644 --- a/Ink Canvas/MainWindow.xaml +++ b/Ink Canvas/MainWindow.xaml @@ -624,6 +624,65 @@ + + + + + + + + + + + + .NET6)", LogHelper.LogType.Warning); + return; + } + if (!string.IsNullOrEmpty(Settings.Startup.AutoUpdatePauseUntilDate)) { if (DateTime.TryParse(Settings.Startup.AutoUpdatePauseUntilDate, out DateTime pauseUntilDate)) diff --git a/Ink Canvas/MainWindow_cs/MW_Settings.cs b/Ink Canvas/MainWindow_cs/MW_Settings.cs index 82411fee..e63e9d05 100644 --- a/Ink Canvas/MainWindow_cs/MW_Settings.cs +++ b/Ink Canvas/MainWindow_cs/MW_Settings.cs @@ -617,6 +617,18 @@ namespace Ink_Canvas private void ToggleSwitchIsAutoUpdate_Toggled(object sender, RoutedEventArgs e) { if (!isLoaded) return; + + if (ToggleSwitchIsAutoUpdate.IsOn && Settings?.Startup?.HasConfirmedNetCompatibilityChange != true) + { + ToggleSwitchIsAutoUpdate.IsOn = false; + MessageBox.Show( + "此版本为最后一个NET472版本,您需要手动确认才能继续接受自动更新。", + "兼容性变更", + MessageBoxButton.OK, + MessageBoxImage.Warning); + return; + } + Settings.Startup.IsAutoUpdate = ToggleSwitchIsAutoUpdate.IsOn; // 自动更新关闭时隐藏静默更新选项 @@ -651,6 +663,18 @@ namespace Ink_Canvas private void ToggleSwitchIsAutoUpdateWithSilence_Toggled(object sender, RoutedEventArgs e) { if (!isLoaded) return; + + if (ToggleSwitchIsAutoUpdateWithSilence.IsOn && Settings?.Startup?.HasConfirmedNetCompatibilityChange != true) + { + ToggleSwitchIsAutoUpdateWithSilence.IsOn = false; + MessageBox.Show( + "此版本为最后一个NET472版本,您需要手动确认才能继续接受自动更新。", + "兼容性变更", + MessageBoxButton.OK, + MessageBoxImage.Warning); + return; + } + Settings.Startup.IsAutoUpdateWithSilence = ToggleSwitchIsAutoUpdateWithSilence.IsOn; // 静默更新的时间设置区域只在静默更新开启时显示 @@ -5303,7 +5327,7 @@ namespace Ink_Canvas SaveSettingsToFile(); // 如果启用了自动更新,立即执行完整的检查更新操作 - if (Settings.Startup.IsAutoUpdate) + if (Settings.Startup.IsAutoUpdate && Settings.Startup.HasConfirmedNetCompatibilityChange) { LogHelper.WriteLogToFile($"AutoUpdate | Channel changed to {newChannel}, performing immediate update check"); ResetUpdateCheckRetry(); @@ -5332,6 +5356,39 @@ namespace Ink_Canvas } } + private void ConfirmNetCompatibilityChangeButton_Click(object sender, RoutedEventArgs e) + { + try + { + if (Settings?.Startup == null) + { + Settings.Startup = new Startup(); + } + + Settings.Startup.HasConfirmedNetCompatibilityChange = true; + SaveSettingsToFile(); + + if (Net472CompatibilityWarningPanel != null) + { + Net472CompatibilityWarningPanel.Visibility = Visibility.Collapsed; + } + + if (ToggleSwitchIsAutoUpdate != null) + { + ToggleSwitchIsAutoUpdate.IsEnabled = true; + } + + if (ToggleSwitchIsAutoUpdateWithSilence != null) + { + ToggleSwitchIsAutoUpdateWithSilence.IsEnabled = true; + } + } + catch (Exception ex) + { + LogHelper.WriteLogToFile($"确认兼容性变更失败: {ex.Message}", LogHelper.LogType.Error); + } + } + private async void ManualUpdateButton_Click(object sender, RoutedEventArgs e) { ManualUpdateButton.IsEnabled = false; diff --git a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs index 4fa98b2e..cd340522 100644 --- a/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs +++ b/Ink Canvas/MainWindow_cs/MW_SettingsToLoad.cs @@ -267,7 +267,7 @@ namespace Ink_Canvas ToggleSwitchIsAutoUpdate.IsOn = Settings.Startup.IsAutoUpdate; // 只有在启用了自动更新功能时才检查更新 - if (Settings.Startup.IsAutoUpdate && !skipAutoUpdateCheck) + if (Settings.Startup.IsAutoUpdate && Settings.Startup.HasConfirmedNetCompatibilityChange && !skipAutoUpdateCheck) { if (isStartup) { @@ -288,6 +288,8 @@ namespace Ink_Canvas ToggleSwitchIsAutoUpdateWithSilence.IsOn = true; } + ApplyNetCompatibilityConfirmationGateToUpdateSettingsUi(); + // 初始化更新通道选择 foreach (var radioButton in UpdateChannelSelector.Items) { @@ -1317,6 +1319,26 @@ namespace Ink_Canvas try { RefreshConfigProfileList(); } catch (Exception ex) { LogHelper.WriteLogToFile($"刷新配置文件列表失败: {ex.Message}", LogHelper.LogType.Warning); } } + private void ApplyNetCompatibilityConfirmationGateToUpdateSettingsUi() + { + bool confirmed = Settings?.Startup?.HasConfirmedNetCompatibilityChange == true; + + if (Net472CompatibilityWarningPanel != null) + { + Net472CompatibilityWarningPanel.Visibility = confirmed ? Visibility.Collapsed : Visibility.Visible; + } + + if (ToggleSwitchIsAutoUpdate != null) + { + ToggleSwitchIsAutoUpdate.IsEnabled = confirmed; + } + + if (ToggleSwitchIsAutoUpdateWithSilence != null) + { + ToggleSwitchIsAutoUpdateWithSilence.IsEnabled = confirmed; + } + } + /// /// 将画笔自动恢复相关的设置应用到界面控件并在启用时初始化自动恢复定时器。 /// diff --git a/Ink Canvas/Resources/Settings.cs b/Ink Canvas/Resources/Settings.cs index 4f3baec5..be2f98f6 100644 --- a/Ink Canvas/Resources/Settings.cs +++ b/Ink Canvas/Resources/Settings.cs @@ -250,6 +250,8 @@ namespace Ink_Canvas public bool HasAcceptedTelemetryPrivacy { get; set; } = false; [JsonProperty("hasShownOobe")] public bool HasShownOobe { get; set; } = false; + [JsonProperty("hasConfirmedNetCompatibilityChange")] + public bool HasConfirmedNetCompatibilityChange { get; set; } = false; } public class Appearance