Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF文本框并双击_Wpf_Textbox_Double Click - Fatal编程技术网

WPF文本框并双击

WPF文本框并双击,wpf,textbox,double-click,Wpf,Textbox,Double Click,我正在WPF应用程序中显示Mac地址。 我希望mac地址可以选择为复制/粘贴,所以我使用的是只读文本框 当用户双击我想要选择整个MacAddress时 WPF和Windows的默认行为是双击冒号之间的数字部分 所以当mac地址是:00:55:66:77:99时 用户双击,只选择mac地址的一部分(如55) 有没有一种没有代码的方法来选择textbox的全部内容 或者我不应该使用文本框 谢谢你就不能处理鼠标双击事件吗?否则,如果希望始终阻止部分选择,则可以处理SelectionChanged事件。

我正在WPF应用程序中显示Mac地址。 我希望mac地址可以选择为复制/粘贴,所以我使用的是只读文本框

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

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

用户双击,只选择mac地址的一部分(如55) 有没有一种没有代码的方法来选择textbox的全部内容

或者我不应该使用文本框

谢谢

你就不能处理鼠标双击事件吗?否则,如果希望始终阻止部分选择,则可以处理SelectionChanged事件。在这两种情况下,您都可以使用SelectAll方法


不过我重读了一遍,发现你想要一个非代码解决方案。不幸的是,我一个也不知道。

不幸的是,我认为没有一种方法可以直接在文本框中实现这一点


也就是说,通过一个或一个表达式行为(我的偏好)将此行为添加到文本框中是很简单的。只需观察选择是否已更改,如果选择了任何内容,请选择所有内容。然后,您可以在其他地方轻松地重用它,而无需向代码隐藏文件中添加代码。您仍然在添加代码,但不是在实际的UserControl或Window类中,而是在一个可重用组件中,该组件将被插入xaml。

在textbox的MouseDoubleClick事件上,您可以调用textbox的SelectAll()方法来选择其中的所有文本

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

我喜欢行为的概念,但我不得不重新发布一些与混合相关的程序集,我还不知道混合。 因此,我最终创建了一种新类型的textbox,它继承自textbox,并在鼠标双击时选择All

谢谢你的回答