我想从代码隐藏(不是TextBox
的代码隐藏,而是一些父控件)设置WPF TextBox
的焦点,并选择TextBox
中的所有文本TextBox
收到焦点时的代码隐藏。
我像这样关注TextBox
:
var scope = FocusManager.GetFocusScope(txt);
FocusManager.SetFocusedElement(scope, txt);
并在TextBox
代码隐藏中听取TextBox
中的事件:
AddHandler(GotFocusEvent, new RoutedEventHandler(SelectAllText), true);
并尝试选择如下文字:
private static void SelectAllText(object sender, RoutedEventArgs e)
{
var textBox = e.OriginalSource as TextBox;
if (textBox != null)
textBox.SelectAll();
}
但是文字没有被选中。如何修改它以便按照我的意愿工作?
答案 0 :(得分:14)
在选择文字
之前,您必须将Keyboard
重点放在TextBox
上
示例:
private static void SelectAllText(object sender, RoutedEventArgs e)
{
var textBox = e.OriginalSource as TextBox;
if (textBox != null)
{
Keyboard.Focus(textBox);
textBox.SelectAll();
}
}