wpf - 不允许对 TextBox 进行双击鼠标操作
问题描述
我正在尝试以这种方式设置文本框的双击手势:
<TextBox>
<TextBox.InputBindings>
<MouseBinding Gesture="MouseDoubleClick" Command="{Binding DobleClickCommand}"/>
</TextBox.InputBindings>
</Textbox>
但是我收到不允许鼠标操作 MOUSEDOUBLECLICK 的错误。
我想将它绑定到我的视图模型中的命令。
输入绑定是这样做的吗?
解决方案
你的鼠标绑定错了,没有MouseDoubleClick
,用LeftDoubleClick
。有关有效鼠标操作的列表,请查看文档。如果您也想执行MiddleDoubleClick
or的操作RightDoubleClick
,您可以为它们创建单独的鼠标绑定到相同的命令。
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding TestingCommand}"/>
或者,您可以使用MouseAction
而不是Gesture
:
<MouseBinding MouseAction="LeftDoubleClick" Command="{Binding DobleClickCommand}"/>
该文档建议使用Gesture
而不是MouseAction
:
在可扩展应用程序标记语言 (XAML) 中定义 MouseBinding 时,有两种方法可以指定 MouseGesture。在 XAML 中建立 MouseBinding 的第一种方法是定义 MouseBinding 元素的 Gesture 属性,它使语法能够将鼠标操作和修饰符指定为单个字符串;例如,“CTRL+左击”。第二种方法是定义 MouseBinding 元素的 MouseAction 属性。
通常,建议您仅使用 XAML 中的 Gesture 属性,即使您未指定修饰符;这避免了歧义,提供了最精简的语法,并为序列化提供了最直接的表示。
关于a和 a的区别:MouseAction
Gesture
MouseGesture 是带有或不带有一组 ModifierKeys 的 MouseAction。与 KeyGesture 不同,MouseGesture 不需要关联修饰键。
推荐阅读
- paypal - AMP-HTML 页面上的 Paypal 按钮
- github - github分支限制个人账号
- elasticsearch - 复杂布尔查询中的弹性搜索错误
- java - 从约束布局类外部将视图膨胀到约束布局
- hibernate - 如何在休眠中仅从表和连接表中的多对多关系中获取数据
- javascript - 如何获取文档上的所有嵌套 iframe?
- c# - 从数据库中填充自定义 TreeView,其中父母按字母缩进
- java - 使用 AppCompat 主题后如何删除按钮中多余的白色背景?
- css - 如何使列占用剩余空间
- sql-server - 在数据库中的所有表上执行的 SQL 脚本