using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using LanMountainDesktop.Launcher.Services; 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 => "安装版", LegacyInstallType.Portable => "便携版", _ => "未知" }; } if (descriptionText != null) { descriptionText.Text = $"检测到您的系统中安装了旧版本的阑山桌面({info.Version})。新版本采用了全新的架构,建议卸载旧版本以获得更好的体验。"; } } /// /// 初始化事件处理程序 /// private void InitializeEventHandlers() { var showLocationButton = this.FindControl