如何获取 WPF 窗口的最小化框单击事件?
问问题
13645 次
3 回答
28
有一个名为StateChanged
which (来自帮助)的事件看起来可能会做你想做的事。
在窗口的 WindowState 属性更改时发生。
帮助说它仅在 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"
于 2009-06-02T11:13:20.757 回答
1
除了Shoban的回答......
您可以使用 Window 的 Deactivated 事件,甚至可以使用 StateChange 事件,如下所示
private void Window_Deactivated(object sender, EventArgs e)
{
if(this.WindowState== WindowState.Minimized)
// Do your stuff
}
这会有所帮助....
于 2009-06-02T11:14:26.730 回答
0
抱歉,这与 WPF 无关,因为我对 WPF 的工作不多。但是您可以做的另一件事是在窗体的 Resized 事件期间检查 Windowsstate 属性。如果它等于 FormWindowState.Minimized 然后单击最小化按钮(?);-)
于 2009-06-02T11:05:57.620 回答