Я написал простую программу в стиле MSN , которая будет отправлять и получать сообщения, используя WCF . Основная форма содержит текстовое поле для ввода сообщения, которое будет отправлено. В фоновом режиме приложение каждые несколько секунд опрашивает сервер на наличие новых сообщений. При получении нового сообщения открывается новое окно для его отображения. Это должно быть сделано в потоке пользовательского интерфейса с использованием класса Dispatcher.
Проблема в том, что при отображении нового окна фокус смещается от TextBox, поэтому ввод текста прерывается. Это очень раздражает! В MSN Messenger можно продолжить вводить собственное сообщение при его получении. Как это сделать?
В качестве обходного пути я откладываю всплывающее окно с новым сообщением, пока текстовое поле имеет фокус, но должен быть лучший способ!