0

WPF 中有OnStartupor OnLoading,可以很容易地覆盖,并且您可以在窗口启动时加载一些数据。但我在阿瓦洛尼亚找不到任何东西。

        private static MainWindow _mainWindow;
        public MainWindow()
        {           
            InitializeComponent();
            _mainWindow = this;

            try
            {
                StaticClass.LoadData();
            }
            catch (Exception exc)
            {
                var messageBoxStandardWindow = MessageBox.Avalonia.MessageBoxManager
  .GetMessageBoxStandardWindow("Error", exc.ToString());
                messageBoxStandardWindow.ShowDialog(_mainWindow);
                Environment.Exit(0);
            }

#if DEBUG
            this.AttachDevTools();
#endif
        }

这看起来会起作用,但事实并非如此。当异常被捕获时,它会抛出新异常:'Cannot show window with non-visible parent.'. 到此基本MainWindow没有准备,这里也加载不了数据。这就是为什么我需要OnStartup替代方案,但我找不到它。

MessageBox来自MessageBox.Avalonia,因为默认的 Avalonia 出于某种原因错过了它。

4

0 回答 0