add:兼容性变更提示

This commit is contained in:
2026-04-18 17:53:13 +08:00
parent 51dcc374ce
commit cbb17ee03f
3 changed files with 92 additions and 15 deletions
+8 -6
View File
@@ -642,15 +642,15 @@
TextWrapping="Wrap" TextWrapping="Wrap"
Foreground="#FF2A2A2A" Foreground="#FF2A2A2A"
FontSize="14" FontSize="14"
Text="此版本为最后一个基于.net framework 4.7.2版本,您需要手动确认才能继续接受自动更新。" /> Text="此版本为最后一个基于.NET Framework 4.7.2版本,您需要手动确认才能继续接受自动更新。" />
<Button Grid.Column="1" <Button Grid.Column="1"
Margin="14,0,0,0" Margin="14,0,0,0"
Padding="18,6" Padding="18,6"
MinWidth="92" MinWidth="92"
Click="ConfirmNetCompatibilityChangeButton_Click" Click="ConfirmNetCompatibilityChangeButton_Click"
Background="#FFF0C24B" Background="#FFFFFFFF"
BorderBrush="#FFE0A800" BorderBrush="#FFE5E7EB"
Foreground="#FF1F1F1F" Foreground="#FF111827"
Content="确认"> Content="确认">
<Button.Template> <Button.Template>
<ControlTemplate TargetType="{x:Type Button}"> <ControlTemplate TargetType="{x:Type Button}">
@@ -667,10 +667,12 @@
</Border> </Border>
<ControlTemplate.Triggers> <ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True"> <Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Bd" Property="Background" Value="#FFE9B53C" /> <Setter TargetName="Bd" Property="Background" Value="#FFF9FAFB" />
<Setter TargetName="Bd" Property="BorderBrush" Value="#FFD1D5DB" />
</Trigger> </Trigger>
<Trigger Property="IsPressed" Value="True"> <Trigger Property="IsPressed" Value="True">
<Setter TargetName="Bd" Property="Background" Value="#FFDCA628" /> <Setter TargetName="Bd" Property="Background" Value="#FFF3F4F6" />
<Setter TargetName="Bd" Property="BorderBrush" Value="#FF9CA3AF" />
</Trigger> </Trigger>
<Trigger Property="IsEnabled" Value="False"> <Trigger Property="IsEnabled" Value="False">
<Setter TargetName="Bd" Property="Background" Value="#FFE7E7E7" /> <Setter TargetName="Bd" Property="Background" Value="#FFE7E7E7" />
+83 -2
View File
@@ -1180,7 +1180,7 @@ namespace Ink_Canvas
loadPenCanvas(); loadPenCanvas();
//加载设置 //加载设置
LoadSettings(true); LoadSettings(true);
ShowNetCompatibilityChangePromptIfNeeded(); ScheduleNetCompatibilityChangePromptAfterStartup();
ApplyLanguageFromSettings(); ApplyLanguageFromSettings();
AutoBackupManager.Initialize(Settings); AutoBackupManager.Initialize(Settings);
CheckUpdateChannelAndTelemetryConsistency(); CheckUpdateChannelAndTelemetryConsistency();
@@ -1506,7 +1506,7 @@ namespace Ink_Canvas
{ {
try try
{ {
if (Settings?.Startup?.HasConfirmedNetCompatibilityChange == true) if (IsNetCompatibilityChangeConfirmed())
{ {
return; return;
} }
@@ -1523,6 +1523,87 @@ namespace Ink_Canvas
} }
} }
private void ScheduleNetCompatibilityChangePromptAfterStartup()
{
Dispatcher.BeginInvoke(new Action(async () =>
{
try
{
// 等待主窗口启动流程与初始渲染基本完成后再提示,避免“刚启动就弹窗”。
await Task.Delay(1000);
ShowNetCompatibilityChangePromptIfNeeded();
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"延迟显示兼容性变更提示失败: {ex.Message}", LogHelper.LogType.Error);
}
}), DispatcherPriority.ApplicationIdle);
}
private string GetNetCompatibilityConfirmationFlagPath()
{
return Path.Combine(App.RootPath, "Configs", "NetCompatibilityConfirmed.flag");
}
private bool IsNetCompatibilityChangeConfirmed()
{
if (Settings?.Startup?.HasConfirmedNetCompatibilityChange == true)
{
return true;
}
try
{
var flagPath = GetNetCompatibilityConfirmationFlagPath();
if (File.Exists(flagPath))
{
if (Settings?.Startup != null && !Settings.Startup.HasConfirmedNetCompatibilityChange)
{
Settings.Startup.HasConfirmedNetCompatibilityChange = true;
SaveSettingsToFile();
}
return true;
}
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"读取兼容性确认标记失败: {ex.Message}", LogHelper.LogType.Error);
}
return false;
}
private void PersistNetCompatibilityChangeConfirmation()
{
if (Settings?.Startup == null)
{
Settings.Startup = new Startup();
}
Settings.Startup.HasConfirmedNetCompatibilityChange = true;
try
{
var flagPath = GetNetCompatibilityConfirmationFlagPath();
var dir = Path.GetDirectoryName(flagPath);
if (!string.IsNullOrWhiteSpace(dir) && !Directory.Exists(dir))
{
Directory.CreateDirectory(dir);
}
if (!File.Exists(flagPath))
{
File.WriteAllText(flagPath, "confirmed=true");
}
}
catch (Exception ex)
{
LogHelper.WriteLogToFile($"写入兼容性确认标记失败: {ex.Message}", LogHelper.LogType.Error);
}
SaveSettingsToFile();
}
private void ApplyLanguageFromSettings() private void ApplyLanguageFromSettings()
{ {
try try
+1 -7
View File
@@ -5360,13 +5360,7 @@ namespace Ink_Canvas
{ {
try try
{ {
if (Settings?.Startup == null) PersistNetCompatibilityChangeConfirmation();
{
Settings.Startup = new Startup();
}
Settings.Startup.HasConfirmedNetCompatibilityChange = true;
SaveSettingsToFile();
if (Net472CompatibilityWarningPanel != null) if (Net472CompatibilityWarningPanel != null)
{ {