c# - 获取 WPF 窗口的最小化框单击

标签 c# .net c#-3.0 wpf-controls

如何获取WPF窗口的最小化框点击事件?

最佳答案

有一个名为 StateChanged 的事件(根据帮助)看起来它可能会执行您想要的操作。

Occurs when the window's WindowState property changes.

帮助说它只在 Vista 下的 .NET 3.0 和 3.5 中受支持,但我刚刚在 XP 上试过它,当窗口最小化、最大化和恢复时它会触发。但是,根据我的测试,它会在状态更改之后触发,因此如果您想在窗口最小化之前执行某些操作,这可能不是您需要的方法。

您必须检查实际状态以确保它是正确的。

    private void Window_StateChanged(object sender, EventArgs e)
    {
        switch (this.WindowState)
        {
            case WindowState.Maximized:
                MessageBox.Show("Maximized");
                break;
            case WindowState.Minimized:
                MessageBox.Show("Minimized");
                break;
            case WindowState.Normal:
                MessageBox.Show("Normal");
                break;
        }
    }

显然,如果我只是打印出状态,我会使用 this.WindowState.ToString() ;)

Visual Studio 应将以下内容添加到窗口的 XAML 定义中:

StateChanged="Window_StateChanged"

关于c# - 获取 WPF 窗口的最小化框单击,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/938924/

相关文章:

c# - 使用NEST(ElasticSearch)搜索嵌套数组

c# - 日期范围重叠

c# - 从转发器中的下拉列表更新用户角色

c# - 并行 foreach 循环 - 奇怪的行为

c# - 如何将 DLL 添加到 GAC

c# - 从 C++ 使用 COM Interop 对象

C# 在 linq 上检索 where 子句

c# - C# travis 的问题

c# - 如果我的类实现了 IDisposable,为什么还需要终结器?

.net - 如何在 .NET 中使用 "override"扩展方法?