Как получить событие с щелчком окна окна окна WPF?
Получить клик с минимальным размером окна WPF
Ответ 1
Там есть событие с именем 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"
Ответ 2
В дополнение к ответу Shoban...
Вы можете использовать событие "Деактивированное окно", вы даже можете использовать событие StateChange, как показано ниже
private void Window_Deactivated(object sender, EventArgs e)
{
if(this.WindowState== WindowState.Minimized)
// Do your stuff
}
это поможет...
Ответ 3
Извините, это не о WPF, поскольку я не очень много работал с WPF. Но еще одна вещь, которую вы можете сделать, это проверить свойство Windowstate во время изменения формы формы. И если он равен FormWindowState.Minimized, то нажата кнопка "Свернуть" (?); -)