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();
    }

0 ответов

Другие вопросы по тегам