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