c# - 在退出 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!");
}
}
}
解决方案
这是一种在 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"
.
这些使准确理解每个动作发生的时间变得更容易,因为它使进入和退出点更加清晰。
注意:如果您希望用户能够取消退出应用程序,但从您的示例代码中不是您要查找的内容,这将不起作用。
推荐阅读
- python - 当我单击提交按钮时,我的数据库中没有任何显示
- environment - Xcode 12:面板中的环境覆盖设置未反映在模拟器上
- java - 如何让我的用户界面自我适应 JPanel 的显示和隐藏?
- python - 为什么python web应用程序的前端会抛出异常?
- python - Tweepy:你如何检查一条推文是否被收藏?
- scala - 如何使用 sbt-native-packager 设置 Docker Registry
- node.js - 不捕获快速启动异常
- python-3.x - 使用 numpy 使用 python 进行数据分析。使用 Matplotlib 绘制图形
- python - 如何删除答案(正文中的代码)?
- swift - 为什么让 cimg = CIImage(image: self.img) 后图像旋转 90 度