获取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则单击最小化按钮(?);-)