当TextBox获得焦点后,其中的文字会被全选。通过GotFocus和PreviewLeftButtonDown事件,就可以模拟上述行为。
如果用户只是用键盘操作,GotFocus事件就足够了。
如果使用鼠标操作,就要用到2个事件了。TextBox会将光标放在鼠标单击的那个位置。为了防止这种情况,会实现PreviewLeftButtonDown事件,
在该控件获得焦点后,将该事件的Handled属性设置为true。这会终止该事件,从而防止光标被定位到TextBox中的特定位置。
private void timeAllowedTextBox_GotFocus(object sender, RoutedEventArgs e) { timeAllowedTextBox.SelectAll(); } private void timeAllowedTextBox_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e) { var control = sender as TextBox; if (control == null) return; Keyboard.Focus(control); e.Handled = true; }