В моем WPF-приложении я использую небольшое окно для отображения некоторых уведомлений, но когда появляется окно уведомления, фокус в главном окне теряется. Например, когда я пишу в TextBox, и я получаю уведомление (появляется окно уведомления), текстовое поле теряет фокус, и мне нужно снова щелкнуть в текстовом поле, чтобы продолжить работу.
Итак, как я могу сохранить фокус главного окна, когда появляется уведомление? Я уже пытался установить Focusable = "false" в окне уведомления
В объекте Window есть свойство ShowActivated, поэтому вы можете оставить главное окно активированным после отображения дочернего окна.
Из MSDN:
Когда открывается окно со свойством ShowActivated, установленным на false, окно не активируется, и его активированное событие не поднимается до тех пор, пока пользователь не вручную активирует окно, выбрав его.
Это действительно не случай, как я могу остановить контроль над тем, чтобы сосредоточиться?, а как я могу сосредоточить свой контроль после того, как он потерял фокус? Теперь, как отметил @AdrianFaciu, довольно сложно вдаваться в подробности, когда вы опустили всю соответствующую информацию из своего вопроса. Одним из вариантов было бы установить фокус на ваш контроль всякий раз, когда он теряет фокус:
private void OnControlLostFocus(object sender, RoutedEventArgs e)
{
YourControlType control = sender as YourControlType;
if (control != null) control.Focus();
}