Текстовое поле фокуса WPF после того, как окно восстановлено / активировано из свернутого состояния - PullRequest
0 голосов
/ 28 апреля 2009

У меня есть простое приложение WPF, где пользователь может свернуть окно моего приложения.

После того, как пользователь восстанавливает Window из свернутого состояния, мне нужно установить фокус на определенный TextBox.

Если пользователь до сворачивания Window не изменил фокус, то после восстановления приложения все в порядке.

Но проблема возникает, когда пользователь сменил фокус.

В моем окне активирован обработчик событий. И код следующий:

private void Window_Activated(object sender, EventArgs e)
{
   if (isFullView)
       tbSearch.Focus();
   else
       tbSearch2.Focus();            
}

После того, как Window восстановлен из свернутого состояния, обработчик событий запускается, но TextBox tbSearch не получает фокус.

Я что-то не так делаю?

Спасибо!

Ответы [ 3 ]

1 голос
/ 25 декабря 2009

нужно распознать пред. выиграть. государство. см. этот пост с информацией: http://blogs.microsoft.co.il/blogs/maxim/archive/2009/12/24/daily-tip-how-to-activate-minimized-window-form.aspx.

1 голос
/ 28 апреля 2009

Трудно сказать, не зная, на что настроен isFullView, но я могу вам сказать, что Focus() устанавливает логический фокус, а не фокус клавиатуры. Элемент управления будет иметь фокус клавиатуры, только если его область фокусировки является активной областью фокусировки.

Пожалуйста, прочитайте эту статью для получения дополнительной информации о фокусе в WPF.

0 голосов
/ 06 мая 2009

Попробуйте убедиться, что TextBox виден к моменту вызова обработчика. Может быть, у вас есть триггеры или другие вещи, которые показывают TextBox позже, чем устанавливается фокус.

...