首页 > 解决方案 > 在退出 C# 窗口应用程序之前运行代码

问题描述

我对 C# 开发很陌生,我试图在用户完全退出应用程序之前运行一些代码。我试图在网上查看,但没有得到任何东西。这是我的代码,它不起作用。谢谢:

namespace WpfApp1
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            Console.WriteLine("Hello World!");

        }

        void DataWindow_Closing(object sender, CancelEventArgs e)
        {
            Console.WriteLine("Goodbey World!");
        }
    }
}

标签: c#wpfwindows

解决方案


这是一种在 WPF 中控制打开和关闭操作的方法。

在 下App.xaml,打开 App.xaml.cs 并进行如下更改。

namespace WpfApp1
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        private void App_Startup(object sender, StartupEventArgs e)
        {
            // Code for before window opens (optional);

            var mainWindow = new MainWindow();
            mainWindow.Show();

            mainWindow.Closed += Window_Closed;
        }

        private void Window_Closed(object sender, EventArgs e)
        {
            // Code for after window closes goes here.
            MessageBox.Show("Goodbye World!");
        }
    }
}

并按如下方式更改 App.xaml 以使用:

<Application x:Class="WpfApp1.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:WpfApp1"
             Startup="App_Startup" >
    <Application.Resources>

    </Application.Resources>
</Application>

这里的关键变化是Startup="App_Startup".

这些使准确理解每个动作发生的时间变得更容易,因为它使进入和退出点更加清晰。

注意:如果您希望用户能够取消退出应用程序,但从您的示例代码中不是您要查找的内容,这将不起作用。


推荐阅读