Для меня достаточно было просто удалить приложение с моего устройства и перезапустить XCode. Перезапуск Xcode, похоже, является решением многих проблем в наши дни ...
Есть событие под названием 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"
В дополнение к ответу Шобана ...
Вы можете использовать событие Window Deactivated, вы даже можете использовать событие StateChange, как показано ниже
private void Window_Deactivated(object sender, EventArgs e)
{
if(this.WindowState== WindowState.Minimized)
// Do your stuff
}
это поможет ....
Извините, это не касается WPF, так как я мало работал с WPF. Но еще одна вещь, которую вы можете сделать, - это проверить свойство Windowstate во время события Resized формы. А если он равен FormWindowState.Minimized, то нажимается кнопка сворачивания (?); -)