В WPF приложении есть небольшая информационная форма, которая вызывается с основной. По задумке на этой информационной форме должен быть стандартный крестик для закрытия, а так же форма должна закрываться сама при потере фокуса. Использую для этого Window_Deactivated.
private void Window_Deactivated(object sender, EventArgs e)
{
this.Close();
}
При потере фокуса все работает как надо, но при закрытии формы через крестик выпадает исключение:
System.InvalidOperationException: 'Во время закрытия окна нельзя установить для Visibility значение Visible или вызвать Show, ShowDialog, Close или WindowInteropHelper.EnsureHandle.'
Можно ли как-то в Deactivated отловить, что форма уже закрывается, чтобы не кидать повторное закрытие и не вызывать исключение?
Да можно, выставляйте флаг и проверяйте его:
bool isClosing = false;
protected override void OnClosing(CancelEventArgs e)
{
base.OnClosing(e);
isClosing = true;
// Возможно, правильнее isClosing = !e.Cancel;
// если выдаете запрос на закрытие или что-то типа того
}
private void Window_Deactivated(object sender, EventArgs e)
{
if (!isClosing) Close();
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
У меня имеется rest self host клиент на одной машине и сервер на другойАвторизация используется по сертификату (httpClientHandler
Каким образом можно отловить нажатие на стрелки при вводе текста в TextBox? Событие KeyDown не реагирует на их нажатие
Сайт не открывает всплывающие окна, в консоли такая ошибка, как мне подключить tooltip к popover?