Jak już odpowiedział, że można realizować ręcznie. Ale nie chcesz tego robić dla każdego pola tekstowego w aplikacji. Więc można realizować załączony właściwość i ustawić go w stylu, jak to:
public static class TextBoxBehavior {
public static readonly DependencyProperty TripleClickSelectAllProperty = DependencyProperty.RegisterAttached(
"TripleClickSelectAll", typeof(bool), typeof(TextBoxBehavior), new PropertyMetadata(false, OnPropertyChanged));
private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
var tb = d as TextBox;
if (tb != null) {
var enable = (bool)e.NewValue;
if (enable) {
tb.PreviewMouseLeftButtonDown += OnTextBoxMouseDown;
}
else {
tb.PreviewMouseLeftButtonDown -= OnTextBoxMouseDown;
}
}
}
private static void OnTextBoxMouseDown(object sender, MouseButtonEventArgs e) {
if (e.ClickCount == 3)
{
((TextBox)sender).SelectAll();
}
}
public static void SetTripleClickSelectAll(DependencyObject element, bool value)
{
element.SetValue(TripleClickSelectAllProperty, value);
}
public static bool GetTripleClickSelectAll(DependencyObject element) {
return (bool) element.GetValue(TripleClickSelectAllProperty);
}
}
Następnie należy utworzyć styl gdzieś (na przykład w zasobach aplikacji w App.xaml):
<Application.Resources>
<Style TargetType="TextBox">
<Setter Property="local:TextBoxBehavior.TripleClickSelectAll"
Value="True" />
</Style>
</Application.Resources>
Teraz wszystko będzie twoje tekstowych automatycznie ma to zachowanie z trzema kliknięciami.