Я сталкиваюсь с ситуацией, которую не понимаю, и хочу, чтобы кто-нибудь меня просветил, если это возможно.
Создано приложение WPF. Для простоты рассмотрим это приложение как одно окно. Я поместил некоторые элементы управления в это окно, среди прочего есть элемент управления TextBox (назовем его TB).
Существует требование, чтобы этот ТБ всегда был в фокусе (если кто-то что-то печатает или что-то читается через сканер штрих-кода, он должен появиться там).
Я подумал реализовать это с помощью таймера: каждую секунду фокус переносится на ТБ.
До сих пор все работает нормально (как и ожидалось).
Странная вещь заключается в следующем: скажем, новый пользователь хочет использовать это окно, поэтому он должен войти в систему. Я подумал реализовать это с помощью нового объекта Window (давайте назовем его W2), назвав его следующим образом:
W2.ShowDialog();
Это окно W2 должно быть модальным (имейте в виду, что таймер все еще работает).
Сумасшедшая вещь в том, что под Windows Vista это работает отлично , как и ожидалось (это означает, что W2 модальный и пользователь может делать то, что он должен делать на W2), НО в Windows XP, как только пользователь хочет что-то набрать в текстовом поле W2, фокус возвращается на ТБ в начальном окне (насколько я могу интерпретировать: это означает, что W2 равен , а не * 1023). * модально !!!? я прав?).
Как я могу преодолеть эту ситуацию?
Это правильный подход?
Заранее спасибо