Вместо этого, рассматривали ли вы просто захват клавиш и ввод этих нажатий в TextBox?
<Window PreviewKeyDown="Window_PreviewKeyDown" >
<Grid>
<TextBox x:Name="TextBox1" />
<ListBox />
</Grid>
</Window>
Тогда в коде вашего окна:
private void Window_PreviewKeyDown(object sender, KeyEventArgs e)
{
TextBox1.Text += e.Key.ToString();
}
Вам придется проделать дополнительную работу для чего-либо, например, для специальных символов (backspace и т. Д.), И, очевидно, для обработчика клавиш для операции «Ввод» или «Опубликовать», но это дает вам возможность просто вводить произвольные формы. в то время как окно имеет фокус и правильно обрабатывать нажатия клавиш при необходимости.