我正在构建一个虚拟键盘以适应我将要部署的触摸屏机器的需求。我使用的是弹出窗口键盘和已经能够连接所有数字按钮如下,这里是我的虚拟键盘类当窗口弹出时如何保持文本框的焦点
public partial class NumKeypad : Window
{
withoutB withoutbvn;
enterBvn ebvnn;
public NumKeypad()
{
InitializeComponent();
}
public NumKeypad(withoutB wobvn)
{
InitializeComponent();
withoutbvn = wobvn;
}
private void one_Click(object sender, RoutedEventArgs e)
{
var focusedElt = FocusManager.GetFocusedElement(withoutbvn);
var tbox = focusedElt as TextBox;
try
{
withoutbvn.ph.Text += (((sender as Button).Content as Border).Child as TextBlock).Text;//this works, but this is assigning directly to only one control. i want to assign to whatever control that has focus
}
catch (Exception ex)
{
}
}
}
在one_click函数的第一行(负责处理所有输入按钮点击)我试图获取当前关注于实例为“withoutbvn”的页面中的元素的引用。 在第二行,我尝试将元素转换为文本框,以便我可以写入其文本属性。但是一直返回null。这意味着当这个弹出窗口出现时(当文本框或任何其他输入元素获得焦点时弹出键盘弹出窗口),我无法获得对焦点文本框的引用,所以我不能写入它。请如何确保集中的文本框保持专注,以便我可以从弹出窗口分配其文本属性?或者如果有更好的方法来做到这一点,请指出我的方向是正确的。由于
难道你不能自己创建它吗? –
看到这个:https://www.codeproject.com/Articles/145579/A-Software-Virtual-Keyboard-for-Your-WPF-Apps – tabby
@MarcoSalerno我现在要做的,但我有一个问题。当在键盘上点击一个按钮(这是一个弹出窗口)时,如何在父窗口中设置文本框的文本以及按钮传递的值 –