我正在尝试为屏幕键盘创建一个 TextBox 行为,它可以更新文本框中的文本,但我无法让它聚焦文本框并将插入符号移动到文本的末尾更新。
我尝试在两个订单中使用 TextBox.Focus() 和 TextBox.Select() 都没有成功。
感谢您的宝贵时间
最佳答案
从输入事件处理程序中更改焦点(即鼠标单击虚拟键)将失败,因为鼠标向上事件(或键向上)会将焦点返回到原始元素。为了使其工作,您必须使用 Dispatcher
对象将焦点命令分派(dispatch)到稍后的时间。
例子:
Dispatcher.Invoke(new Action(() =>
{
textBox1.Focus();
textBox1.SelectionStart = textBox1.Text.Length;
// or textBox1.Select(textBox1.Text.Length,0);
}), System.Windows.Threading.DispatcherPriority.Background);
关于Silverlight TextBox,移动插入符号位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998705/