, el o uygulayabilirsiniz kullanarak deneyebilirsiniz. Ancak, uygulamanızdaki her bir metin kutusu için bunu yapmak istemezsiniz. Yani ekli özelliğini uygulamak ve bunun gibi, tarzında ayarlayabilirsiniz:
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);
}
}
Sonra bir yerde (App.xaml uygulama kaynaklarında örneğin) stil oluşturmak
:
<Application.Resources>
<Style TargetType="TextBox">
<Setter Property="local:TextBoxBehavior.TripleClickSelectAll"
Value="True" />
</Style>
</Application.Resources>
Şimdi tüm metin kutularının olacak otomatik olarak bu üç tıklatma davranışına sahip olursunuz.