using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using LanMountainDesktop.Launcher.Resources; using LanMountainDesktop.Launcher.Infrastructure; namespace LanMountainDesktop.Launcher.Views; /// /// 迁移提示窗口 - 提示用户卸载旧版本 /// public partial class MigrationPromptWindow : Window { private readonly TaskCompletionSource _completionSource = new(); private LegacyVersionInfo? _legacyInfo; public MigrationPromptWindow() { AvaloniaXamlLoader.Load(this); InitializeEventHandlers(); } /// /// 设置老版本信息 /// public void SetLegacyInfo(LegacyVersionInfo info) { _legacyInfo = info; // 更新 UI var versionText = this.FindControl("VersionText"); var pathText = this.FindControl("PathText"); var typeText = this.FindControl("TypeText"); var descriptionText = this.FindControl("DescriptionText"); if (versionText != null) { versionText.Text = info.Version; } if (pathText != null) { pathText.Text = info.InstallPath; } if (typeText != null) { typeText.Text = info.InstallType switch { LegacyInstallType.Registry => Strings.Migration_Installed, LegacyInstallType.Portable => Strings.Migration_Portable, _ => Strings.Migration_Unknown }; } if (descriptionText != null) { descriptionText.Text = string.Format(Strings.Migration_DetectedDescFormat, info.Version); } } /// /// 初始化事件处理程序 /// private void InitializeEventHandlers() { var showLocationButton = this.FindControl