不允许对TextBox进行双击鼠标操作

问题描述

我正在尝试通过以下方式设置文本框的双击手势:

<TextBox>
    <TextBox.InputBindings>
        <MouseBinding Gesture="MouseDoubleClick" Command="{Binding dobleClickCommand}"/>
    </TextBox.InputBindings>
</TextBox>

但是我得到一个错误,即不允许执行鼠标动作MOUSEDOUBLECLICK。

我想将其绑定到我的视图模型中的命令。

输入绑定是做到这一点的方法吗?

解决方法

您的鼠标绑定错误,没有MouseDoubleClick,请使用LeftDoubleClick。有关有效的鼠标操作的列表,请查看documentation。如果您也想对MiddleDoubleClickRightDoubleClick执行操作,则可以为它们创建到同一命令的单独鼠标绑定。

<MouseBinding Gesture="LeftDoubleClick" Command="{Binding TestingCommand}"/>

或者,您可以使用MouseAction代替Gesture

<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding DobleClickCommand}"/>

documentation建议使用Gesture代替MouseAction

使用可扩展应用程序标记语言(XAML)定义MouseBinding时,有两种方法可以指定MouseGesture。在XAML中建立MouseBinding的第一种方法是定义MouseBinding元素的Gesture属性,该属性使语法可以将鼠标动作和修饰符指定为单个字符串。例如“ CTRL + LeftClick”。第二种方法是定义MouseBinding元素的MouseAction属性。

通常,即使不指定修饰符,也建议仅使用XAML中的Gesture属性。这样可以避免歧义,提供最简化的语法,并提供最直接的序列化表示形式。

differenceGesture之间的MouseAction上:

MouseGesture是带有或不带有一组ModifierKeys的MouseAction。与KeyGesture不同,MouseGesture不需要与之关联的修饰键。