Wpf не позволяет всплывающему окну удалять фокус текстового поля

1

В моем WPF-приложении я использую небольшое окно для отображения некоторых уведомлений, но когда появляется окно уведомления, фокус в главном окне теряется. Например, когда я пишу в TextBox, и я получаю уведомление (появляется окно уведомления), текстовое поле теряет фокус, и мне нужно снова щелкнуть в текстовом поле, чтобы продолжить работу.

Итак, как я могу сохранить фокус главного окна, когда появляется уведомление? Я уже пытался установить Focusable = "false" в окне уведомления

  • 0
    Можете ли вы показать нам небольшой пример, чтобы воспроизвести это? Нам нужно немного больше информации, чтобы помочь вам: что такое окно уведомлений? как вы это отображаете? и т.п.
Теги:
wpf

2 ответа

0
Лучший ответ

В объекте Window есть свойство ShowActivated, поэтому вы можете оставить главное окно активированным после отображения дочернего окна.

Из MSDN:

Когда открывается окно со свойством ShowActivated, установленным на false, окно не активируется, и его активированное событие не поднимается до тех пор, пока пользователь не вручную активирует окно, выбрав его.

  • 0
    Спасибо, простое и эффективное решение
1

Это действительно не случай, как я могу остановить контроль над тем, чтобы сосредоточиться?, а как я могу сосредоточить свой контроль после того, как он потерял фокус? Теперь, как отметил @AdrianFaciu, довольно сложно вдаваться в подробности, когда вы опустили всю соответствующую информацию из своего вопроса. Одним из вариантов было бы установить фокус на ваш контроль всякий раз, когда он теряет фокус:

private void OnControlLostFocus(object sender, RoutedEventArgs e)
{
    YourControlType control = sender as YourControlType;
    if (control != null) control.Focus();
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню