获取WPF窗口的最小化框
如何获取WPF窗口的最小化框单击事件?
有一个名为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; } }
显然,如果我只是打印出状态,我会使用this.WindowState.ToString()
;)
以下内容应该被Visual Studio添加到窗口的XAML定义中:
StateChanged="Window_StateChanged"
除了Shoban的回答……
您可以使用Window的Deactivated事件,甚至可以使用StateChange Event,如下所示
private void Window_Deactivated(object sender, EventArgs e) { if(this.WindowState== WindowState.Minimized) // Do your stuff }
它会有所帮助….
对不起,这不是WPF,因为我没有与WPF合作过多。 但是,您可以做的另一件事是在Form的Resized事件期间检查Windowstate属性。 如果它等于FormWindowState.Minimized则单击最小化按钮(?);-)