WPF: текстовое поле теряет фокус, если отображается экранная клавиатура
У меня есть пользовательский элемент управления для текстового поля. В коде пользовательского элемента управления у меня есть функция с именем "TextBoxText_PreviewMouseDown", которая показывает экранную клавиатуру:
private void TextBoxText_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
TextBox textbox = sender as TextBox;
US_Keyboard keyboardWindow = new US_Keyboard(textbox, Window.GetWindow(this));
if (keyboardWindow.ShowDialog() == true)
textbox.Text = keyboardWindow.InputSource.Text;
}
Моя проблема в том, что если отображается экранная клавиатура, она получает фокус и для этого курсор исчезает в текстовом поле.
Экранная клавиатура представляет собой самодельную wpf-клавиатуру (US_Keyboard) с файлом xaml для пользовательского интерфейса клавиатуры и файлом с задним кодом для логики клавиатуры.
вот конструктор клавиатуры:
public US_Keyboard(TextBox owner, Window wndOwner)
{
InitializeComponent();
MainWindow = wndOwner;
this.Owner = wndOwner;
this.DataContext = this;
InputSource = owner;
SetKeyboardSize();
SetKeyboardPosition();
}