获取WPF窗口的最小化框

Sau*_*ron 15 .net c# wpf-controls c#-3.0

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

Chr*_*isF 28

有一个事件叫StateChanged(从帮助)看起来它可能做你想要的.

窗口的WindowState属性更改时发生.

帮助说它只支持.NET 3.0和Vista下的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;
        }
    }
Run Code Online (Sandbox Code Playgroud)

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

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

StateChanged="Window_StateChanged"
Run Code Online (Sandbox Code Playgroud)

  • 有关在**窗口最小化之前做某事**的信息,请参阅此问题http://stackoverflow.com/questions/926758/window-statechanging-event-in-wpf (2认同)