【C#】 一个窗体能够显示、最小化、最大化、关闭时分别触发方法

在C#的WPF应用程序中,窗体(即继承自System.Windows.Window的类)能够通过处理以下事件来响应显示、最小化、最大化和关闭操作:

1.显示:

窗体显示时没有直接对应的事件,但你可以通过覆盖OnLoaded方法或订阅Loaded事件来实现在窗体加载完成并显示时执行某些操作。

cs 复制代码
public MyWindow()
{
    InitializeComponent();
    Loaded += MyWindow_Loaded;
}

private void MyWindow_Loaded(object sender, RoutedEventArgs e)
{
    // 在这里放置窗体显示时要执行的代码
}

2.最小化:

可以通过订阅StateChanged事件并检查WindowState属性来检测窗体是否变为最小化状态。

cs 复制代码
public MyWindow()
{
    InitializeComponent();
    StateChanged += MyWindow_StateChanged;
}

private void MyWindow_StateChanged(object sender, EventArgs e)
{
    if (WindowState == WindowState.Minimized)
    {
        // 窗体被最小化时执行的代码
    }
}

3.最大化:

同样,通过StateChanged事件来检测窗体是否变为最大化状态。

cs 复制代码
private void MyWindow_StateChanged(object sender, EventArgs e)
{
    if (WindowState == WindowState.Maximized)
    {
        // 窗体被最大化时执行的代码
    }
}

4.关闭:

可以通过订阅Closing或Closed事件来处理窗体关闭前后的逻辑。

Closing事件在窗体开始关闭过程时触发,此时还可以取消关闭操作。

cs 复制代码
public MyWindow()
{
    InitializeComponent();
    Closing += MyWindow_Closing;
}

private void MyWindow_Closing(object sender, CancelEventArgs e)
{
    // 可以在这里决定是否取消关闭操作
    // e.Cancel = true; // 设置为true将取消关闭
    // 窗体关闭前执行的代码
}

Closed事件在窗体已经关闭后触发,不能取消关闭操作。

cs 复制代码
public MyWindow()
{
    InitializeComponent();
    Closed += MyWindow_Closed;
}

private void MyWindow_Closed(object sender, EventArgs e)
{
    // 窗体已经关闭后执行的代码
}
相关推荐
用户7884773163415 小时前
门店核销闭环:小程序扫码 + .NET 幂等接口 + WPF 看板,一天能跑通
微信小程序·c#
samble18 小时前
从零搭建灌装监控系统(十三):报警系统设计,生命周期与通知
c#·wpf·mvvm·modbus·工业控制
miofly20 小时前
GitHub 今日推荐|SCSKiller:游戏着色器预编译消除卡顿
开源·c#·github
周杰伦fans1 天前
8GB显存下模型量化实战指南
人工智能·后端·c#
samble2 天前
从零搭建灌装监控系统(十二):配置系统,原子写入与容错
c#·wpf·mvvm·modbus·工业控制
流形填表2 天前
题库去重实战:基于题干指纹的重复题清理
开发语言·c#
开开心心就好2 天前
以图搜图找重复图片,本地工具离线就能用
javascript·智能手机·ffmpeg·c#·ocr·word·音视频
QQ_21696290962 天前
基于C#(Asp.net)电竞陪玩信息管理系统的设计与实现
java·大数据·spring boot·微信小程序·c#·云计算·asp.net
未来之窗软件服务2 天前
C# 截图源码支持自动保存-东方仙盟
c#·仙盟创梦ide·东方仙盟·电脑工具
UIU1143 天前
-7 / 2 在 C 里是 -3,在 Python 里是 -4,谁算错了?
c++·学习·c#