【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)
{
    // 窗体已经关闭后执行的代码
}
相关推荐
波力海苔夹心脆67519 分钟前
VisionMaster 两级位置修正实战:塑料外壳与金属件装配角度检测
经验分享·计算机视觉·c#·visionmaster·海康机器人·位置修正
小羊没烦恼!2 小时前
C#综合揭秘——Entity Framework 并发处理详解
java·开发语言·前端·javascript·数据库·mysql·c#
淡海水3 小时前
05-02-源码-Boehm GC标记阶段
算法·unity·c#·游戏引擎·gc
信可维3 小时前
AI 读 Word 表格总读错?先查合并单元格和表头这 3 处
开发语言·人工智能·c#·word·软件工程
半摆烂日常5 小时前
手机表单的左滑操作:触摸事件的处理细节
大数据·开发语言·人工智能·智能手机·https·c#
绛橘色的日落(。・∀・)ノ6 小时前
C#学习笔记
笔记·学习·c#
asdzx676 小时前
C# 将 HTML 转换为 PDF:基于 Chrome 的转换方案
pdf·c#·html
1-1=07 小时前
.NET 实现后台任务
c#·.net·.netcore·quartz·hangfire
步步为营DotNet7 小时前
从分代预算到 DATAS:.NET GC 调优到底在调什么
c#·.net·内存管理·gc·datas
淡海水7 小时前
05-03-源码-Boehm GC分配与碎片管理
开发语言·算法·unity·c#·游戏引擎·gc