Есть событие под названием StateChanged
, которое (из справки) выглядит так, как будто оно может делать то, что вы хотите.
Происходит, когда WindowState окна
изменения свойств.
В справке говорится, что она поддерживается только в .NET 3.0 и 3.5 под Vista, но я только что попробовал ее на 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()
;)
Следующее должно быть добавлено к определению XAML вашего окна Visual Studio:
StateChanged="Window_StateChanged"