WPF文本框和双击

时间:2009-12-03 18:14:03

标签: wpf textbox double-click

我在WPF应用程序中显示Mac地址。 我希望这个mac地址可以选择复制/粘贴,所以我使用的是ReadOnly TextBox

当用户双击时,我想选择整个MacAddress

WPF和Windows的默认行为是双击选择冒号之间的数字部分 所以当mac地址是:00:55:66:77:99

并且用户双击,只选择了mac地址的一部分(如55) 有没有一种方法可以选择文本框的整个内容

或者我不应该使用文本框?

由于

4 个答案:

答案 0 :(得分:5)

在文本框的MouseDoubleClick事件中,您可以调用文本框的SelectAll()方法来选择其中的文本。

void textBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
    (sender as TextBox).SelectAll();
}

答案 1 :(得分:1)

不幸的是,我认为没有办法直接在TextBox中执行此操作。

话虽如此,通过Attached Property或表达行为(我的偏好)将此行为添加到文本框中是微不足道的。只需注意选择更改,如果有任何选择,请选择所有内容。然后,您可以在其他地方轻松地重复使用它,而无需在代码后面添加代码。您仍然在添加代码,但不是在实际的UserControl或Window类中,而是在可重用的组件中,只是插入到xaml中。

答案 2 :(得分:0)

你不能只处理MouseDoubleClick事件吗?否则,如果您想要始终阻止部分选择,则可以处理SelectionChanged事件。在任何一种情况下,您都可以使用SelectAll方法。

没关系,我重新阅读,看到你想要一个非代码解决方案。不幸的是,我一无所知。

答案 3 :(得分:0)

我喜欢行为的想法,但我不得不重新分配一些与Blend相关的程序集,而我还不知道Blend。 所以我最终创建了一种新的文本框,它继承自文本框,并在mousedoubleclick时选择了所有

感谢所有答案