在双击时,XAML中是否有一种方法可以选择文本框中的所有文本?

有没有办法纯粹通过XAML突出显示文本框中的所有文本,或者是否必须在Xaml.cs中完成

谢谢!

这就是你要做的事情:

首先,将DoubleClickBehavior.cs类添加到项目中。

 class DoubleClickBehavior : Behavior { protected override void OnAttached() { AssociatedObject.MouseDoubleClick += AssociatedObjectMouseDoubleClick; base.OnAttached(); } protected override void OnDetaching() { AssociatedObject.MouseDoubleClick -= AssociatedObjectMouseDoubleClick; base.OnDetaching(); } private void AssociatedObjectMouseDoubleClick(object sender, RoutedEventArgs routedEventArgs) { AssociatedObject.SelectAll(); } } 

然后在.xaml ,将此行为添加到TextBox:

      

您需要在.xaml添加两个namepsace才能使用您的行为。 (我的项目名称是WpfApplication1 ,因此您可能需要更改它):

  xmlns:local ="clr-namespace:WpfApplication1" xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 

而已。 您还需要System.Windows.Interactivity.dll来使用Behavior类。

您可以从Nuget Package Manager下载它。

使用TextBox,您可以添加PreviewMouseDoubleClick事件。

  

然后将TextBox的TextBox.SelectedText属性设置为TextBox中的TextBox

 private void TextBoxSelectAll(object sender, MouseButtonEventArgs e) { // Set the event as handled e.Handled = true; // Select the Text (sender as TextBox).SelectAll(); }