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