WPF:使用虚拟键盘

时间:2018-02-21 17:15:09

标签: c# wpf xaml

我创建了一个虚拟键盘用户控件,可以在我的应用程序中的多个窗口中使用。我想知道当按下某个键时,我能够将它输入到窗口中的文本框中。

我正在寻找的是:

<local:QWERTYKeyboard TextboxBinding="TextboxName"/>

例如,如果我按下“a”键,则会在文本框中添加“a”。

我的思维倾向于某种绑定属性,但由于我是WPF的新手,我不知道从哪里开始。像

这样的东西
VarID

由于

1 个答案:

答案 0 :(得分:2)

这是一项非常复杂的任务。幸运的是,有很多关于这个主题的好教程。

我建议你完成这两个教程:

特别是第一个应该包含一个应该让你开始的示例应用程序。

有关将文本导入TextBox的特定问题。一个(天真的)实现是跟踪focus

您的虚拟键盘可能具有包含当前焦点TextBox的属性:

public TextBox FocusedTextBox {get;set;}

您的每个应用程序的文本框都可以根据GotFocus事件更新属性:

private void txtBox_GotFocus(object sender, RoutedEventArgs e)
{
    // Set virtual keyboards' active textbox
    this.VirtualKeyboard.FocusedTextBox = txtBox;
}

现在在虚拟键盘中,当按下&#34; a&#34;时,您只需更新TextBox的内容:

private void UserPressedVirtualKeyboard(object sender, RoutedEventArgs e)
{
    this.VirtualKeyboard.FocusedTextBox.Text = this.VirtualKeyboard.FocusedTextBox.Text + pressedChar;
}