using Avalonia.Controls; using Avalonia.Interactivity; using Avalonia.Markup.Xaml; using Avalonia.Platform.Storage; namespace LanMountainDesktop.Launcher.Views; /// /// 错误调试窗口 - 开发人员专用调试设置 /// public partial class ErrorDebugWindow : Window { private string? _selectedHostPath; private bool _isInitialized = false; /// /// 是否启用了开发模式 /// public bool IsDevModeEnabled { get; private set; } /// /// 选择的主程序路径 /// public string? SelectedHostPath => _selectedHostPath; public ErrorDebugWindow() { AvaloniaXamlLoader.Load(this); // 延迟到窗口加载完成后再初始化组件 this.Loaded += OnWindowLoaded; } public ErrorDebugWindow(bool devModeEnabled, string? initialPath) : this() { IsDevModeEnabled = devModeEnabled; _selectedHostPath = initialPath; } /// /// 窗口加载完成事件 /// private void OnWindowLoaded(object? sender, RoutedEventArgs e) { if (_isInitialized) return; _isInitialized = true; Console.WriteLine("[ErrorDebugWindow] Window loaded, initializing components..."); InitializeComponents(); // 设置初始值(在视觉树准备好后) var devModeToggle = this.FindControl("DevModeToggle"); if (devModeToggle is not null) { devModeToggle.IsChecked = IsDevModeEnabled; } UpdatePathDisplay(_selectedHostPath); } private void InitializeComponents() { // 开发模式开关 var devModeToggle = this.FindControl("DevModeToggle"); if (devModeToggle is not null) { devModeToggle.IsCheckedChanged += (s, e) => { IsDevModeEnabled = devModeToggle.IsChecked ?? false; Console.WriteLine($"[ErrorDebugWindow] DevMode changed to: {IsDevModeEnabled}"); }; Console.WriteLine("[ErrorDebugWindow] DevModeToggle event bound"); } else { Console.Error.WriteLine("[ErrorDebugWindow] Failed to find DevModeToggle!"); } // 浏览按钮 var browseButton = this.FindControl