当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;}