相关疑难解决方法(0)

模拟Click with MouseUp和MouseDown事件或其他方法的最佳方法是什么?

在WPF大多数控件具有MouseUpMouseDown事件(和鼠标按钮特有的变化),但不是一个简单的Click,可马上使用的事件.如果你想使用这些事件进行类似点击的行为,你需要处理我认为有点痛苦的事件.

最明显的问题是,你不能简单地忽略MouseDown事件,因为如果你点击启动另一个控件,它被释放了,只有处理控制MouseUp你应该点击就会触发,而它真的不应该:两个MouseUpMouseDown以上相同的控制应该发生.

所以如果有的话,我会对这个一般性问题更优雅的解决方案感兴趣.


注意:有几个很好的解决方案可以在下面看到,我选择接受Rachel的答案,因为它似乎很受欢迎,但另外我想添加以下注释:

Rachel的按钮答案非常简洁明了,但是您需要将实际控件包装在一个按钮中,在某些情况下,您可能不会真正将控件视为按钮,因为它可以被单击(例如,如果它更像是超链接),进一步你需要每次都引用一个模板.

Rick Sladkey的行为答案更直接地回答了如何模拟点击/使控件可点击的原始问题,缺点是你需要引用System.Windows.Interactivity并喜欢Rachel的解决方案,它会夸大Xaml代码.

我的附加事件答案的优点是在Xaml-Markup方面非常接近正常的点击事件,这可以用一个属性来完成,我看到的唯一问题是代码中的事件附件没有干净地封装(如果有人知道修复此问题,请在答案中添加评论).

wpf controls click mouseevent

29
推荐指数
3
解决办法
1万
查看次数

标签 统计

click ×1

controls ×1

mouseevent ×1

wpf ×1