From 092fd1c3ee9ccf56d02610e905c3f9c507d9b3a7 Mon Sep 17 00:00:00 2001 From: CJKmkp <2564608840@qq.com> Date: Fri, 20 Feb 2026 14:20:25 +0800 Subject: [PATCH] improve:OOBE --- Ink Canvas/MainWindow.xaml.cs | 72 ++++++++++++++++++++++++++++++++++- 1 file changed, 70 insertions(+), 2 deletions(-) diff --git a/Ink Canvas/MainWindow.xaml.cs b/Ink Canvas/MainWindow.xaml.cs index a442afab..3019f05b 100644 --- a/Ink Canvas/MainWindow.xaml.cs +++ b/Ink Canvas/MainWindow.xaml.cs @@ -318,9 +318,79 @@ namespace Ink_Canvas { MinimizedTimerControl.SetParentControl(TimerControl); } + CheckAndShowOobe(); }), DispatcherPriority.Loaded); } + private void CheckAndShowOobe() + { + try + { + if (Settings?.Startup?.HasShownOobe == false) + { + var oobeTimer = new DispatcherTimer(DispatcherPriority.Loaded, Dispatcher) + { + Interval = TimeSpan.FromMilliseconds(500) + }; + oobeTimer.Tick += (s, e) => + { + oobeTimer.Stop(); + oobeTimer = null; + try + { + if (ViewboxFloatingBar != null) + { + ViewboxFloatingBar.Visibility = Visibility.Collapsed; + } + + var oobeWindow = new OobeWindow(Settings); + oobeWindow.Owner = this; + oobeWindow.ShowDialog(); + + OnOobeCompleted(); + } + catch (Exception ex) + { + LogHelper.WriteLogToFile($"显示 OOBE 时出错: {ex.Message}", LogHelper.LogType.Error); + if (ViewboxFloatingBar != null) + { + ViewboxFloatingBar.Visibility = Visibility.Visible; + } + } + }; + oobeTimer.Start(); + } + } + catch (Exception ex) + { + LogHelper.WriteLogToFile($"检查 OOBE 时出错: {ex.Message}", LogHelper.LogType.Error); + } + } + + private void OnOobeCompleted() + { + try + { + if (Settings?.Startup != null) + { + Settings.Startup.HasShownOobe = true; + SaveSettingsToFile(); + } + + if (ViewboxFloatingBar != null && currentMode == 0) + { + ViewboxFloatingBar.Visibility = Visibility.Visible; + ViewboxFloatingBarMarginAnimation(100, true); + } + + LogHelper.WriteLogToFile("OOBE 已完成", LogHelper.LogType.Event); + } + catch (Exception ex) + { + LogHelper.WriteLogToFile($"完成 OOBE 时出错: {ex.Message}", LogHelper.LogType.Error); + } + } + private void TimerControl_ShowMinimizedRequested(object sender, EventArgs e) { var timerContainer = FindName("TimerContainer") as FrameworkElement; @@ -975,8 +1045,6 @@ namespace Ink_Canvas AutoBackupManager.Initialize(Settings); CheckUpdateChannelAndTelemetryConsistency(); - ShowOobeIfNeeded(); - // 初始化Dlass上传队列(恢复上次的上传队列) DlassNoteUploader.InitializeQueue();