improve:自动更新

This commit is contained in:
2026-03-28 20:28:42 +08:00
parent 1124bb6bfa
commit bc3e37e541
4 changed files with 59 additions and 0 deletions
+12
View File
@@ -723,6 +723,18 @@
Toggled="ToggleSwitchIsAutoUpdateWithSilence_Toggled" />
<TextBlock Text="{i18n:I18n Key=Startup_SilentUpdateHint}" TextWrapping="Wrap" Foreground="#a1a1aa" />
<!-- 更新包架构 -->
<ikw:SimpleStackPanel Spacing="8" Margin="0,8,0,0">
<TextBlock Text="{i18n:I18n Key=Startup_UpdatePackageArchitecture}" FontSize="15" FontWeight="Bold" Foreground="#fafafa"/>
<ui:RadioButtons x:Name="UpdatePackageArchitectureSelector" Margin="0,4,0,0">
<RadioButton Content="{i18n:I18n Key=Update_PackageArch_X86}" GroupName="UpdatePackageArchitecture"
Tag="X86" Checked="UpdatePackageArchitectureSelector_Checked"/>
<RadioButton Content="{i18n:I18n Key=Update_PackageArch_X64}" GroupName="UpdatePackageArchitecture"
Tag="X64" Checked="UpdatePackageArchitectureSelector_Checked"/>
</ui:RadioButtons>
<TextBlock Text="{i18n:I18n Key=Startup_UpdatePackageArchitectureHint}" TextWrapping="Wrap" Foreground="#a1a1aa" />
</ikw:SimpleStackPanel>
<!-- 更新通道选择 -->
<ikw:SimpleStackPanel Spacing="8" Margin="0,8,0,0">
<TextBlock Text="{i18n:I18n Key=Startup_UpdateChannel}" FontSize="15" FontWeight="Bold" Foreground="#fafafa"/>
+20
View File
@@ -38,6 +38,8 @@ namespace Ink_Canvas
/// 内部标记:是否正在内部更改更新通道
/// </summary>
private bool _isChangingUpdateChannelInternally;
/// <summary>内部标记:是否正在内部更改「更新包架构」(32/64 位 ZIP</summary>
private bool _isChangingUpdatePackageArchInternally;
/// <summary>
/// 内部标记:是否正在内部更改遥测设置
/// </summary>
@@ -5171,6 +5173,24 @@ namespace Ink_Canvas
HideSubPanels();
}
private void UpdatePackageArchitectureSelector_Checked(object sender, RoutedEventArgs e)
{
if (!isLoaded) return;
if (_isChangingUpdatePackageArchInternally) return;
if (!(sender is RadioButton radioButton) || radioButton.Tag == null) return;
var newArch = string.Equals(radioButton.Tag.ToString(), "X64", StringComparison.OrdinalIgnoreCase)
? UpdatePackageArchitecture.X64
: UpdatePackageArchitecture.X86;
if (Settings.Startup.UpdatePackageArchitecture == newArch)
return;
Settings.Startup.UpdatePackageArchitecture = newArch;
SaveSettingsToFile();
LogHelper.WriteLogToFile($"Settings | Update package architecture: {newArch}");
}
private async void UpdateChannelSelector_Checked(object sender, RoutedEventArgs e)
{
if (!isLoaded) return;
@@ -301,6 +301,29 @@ namespace Ink_Canvas
}
}
// 初始化更新包架构
if (UpdatePackageArchitectureSelector != null)
{
_isChangingUpdatePackageArchInternally = true;
try
{
string wantTag = Settings.Startup.UpdatePackageArchitecture == UpdatePackageArchitecture.X64 ? "X64" : "X86";
foreach (var item in UpdatePackageArchitectureSelector.Items)
{
if (item is RadioButton rb && rb.Tag != null &&
string.Equals(rb.Tag.ToString(), wantTag, StringComparison.OrdinalIgnoreCase))
{
rb.IsChecked = true;
break;
}
}
}
finally
{
_isChangingUpdatePackageArchInternally = false;
}
}
AutoUpdateTimePeriodBlock.Visibility = Settings.Startup.IsAutoUpdateWithSilence
? Visibility.Visible
: Visibility.Collapsed;
+4
View File
@@ -374,6 +374,10 @@
<data name="Update_Release" xml:space="preserve"><value>稳定版 (Release)</value></data>
<data name="Update_Preview" xml:space="preserve"><value>预览版 (Preview)</value></data>
<data name="Update_Beta" xml:space="preserve"><value>测试版 (Beta)</value></data>
<data name="Startup_UpdatePackageArchitecture" xml:space="preserve"><value>软件架构</value></data>
<data name="Update_PackageArch_X86" xml:space="preserve"><value>32 位 (x86)</value></data>
<data name="Update_PackageArch_X64" xml:space="preserve"><value>64 位 (x64)</value></data>
<data name="Startup_UpdatePackageArchitectureHint" xml:space="preserve"><value># 选择要下载架构</value></data>
<data name="Startup_UpdateChannelHint" xml:space="preserve"><value># 稳定版提供可靠更新,预览版提供新功能体验同时拥有相较Beta版更强的稳定性,测试版提供新功能抢先体验</value></data>
<data name="Btn_ManualUpdate" xml:space="preserve"><value>手动更新</value></data>
<data name="Startup_ManualUpdateHint" xml:space="preserve"><value># 点击后立即检查并下载最新版本</value></data>