【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.关闭

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

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)
{
    // 窗体已经关闭后执行的代码
}
相关推荐
NoteStream1 小时前
【C语言基础】分支和循环(上)
c语言·开发语言·c++·经验分享·笔记·算法·c#
lzhdim4 小时前
C# 通过 Windows API 实现进程内存读写操作
开发语言·windows·c#
-银雾鸢尾-4 小时前
C#中的预处理指令
开发语言·c#
dalong104 小时前
Savitzky-Golay 的C# 实现
开发语言·kotlin·c#
猿长大人5 小时前
C# | Autofac 新手指南:从零理解依赖注入与组件装配
c#·.net·di·依赖注入
show4335 小时前
多格式导出怎么做?2026免费小程序TXT/SRT实践
开发语言·小程序·c#
czhaii6 小时前
word插入表格排版创建或编辑应用技巧
ui·c#·xhtml
在世修行6 小时前
从零打造 C# 工业视觉检测系统(十一):Task 异步编程与实时性保障
开发语言·c#·task异步
czhc11400756637 小时前
2026-08-09 学习笔记:背钻检测核心概念
c#
yanaiding18 小时前
C# WPF 独立开发看图工具 PixSight 经验介绍(二)—— 水印模块开发实录
图像处理·c#·wpf·个人开发