首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MouseLeftButtonUp :准确的火灾条件?

MouseLeftButtonUp :准确的火灾条件?
EN

Stack Overflow用户
提问于 2013-08-01 11:45:31
回答 1查看 474关注 0票数 0

我有一些矩形,我想实现的是:

用户触摸屏幕,他可以在长方形之间滑动。然后他的手指抬起,最后一次触摸矩形被选中。(在矩形外腾空将不会触发任何东西)

就像我lumia 920的键盘,一旦你发现你的手指放错了位置,你就可以滑到正确的位置,抬起手,在屏幕上显示正确的字符。

感谢你们英雄们!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-01 12:06:52

这比看起来要复杂得多,因为只有在首先在控件上触发MouseLeftButtonUp事件时,才会触发MouseLeftButtonDown事件。

我看到了实现这一结果的两种方法:

  1. 将相同的MouseLeftButtonDown和MouseLeftButtonUp事件处理程序分配给所有矩形。在MouseLeftButtonDown中,调用CaptureMouse方法(它告诉控件继续跟踪鼠标事件,即使光标不再位于控件的顶部): 私有空MouseLeftButtonDown(对象发送方,MouseButtonEventArgs e) {((UIElement)发送方).CaptureMouse();} 在MouseLeftButtonDown中,释放鼠标,然后使用VisualTreeHelper.FindElementsInHostCoordinates查找触发偶数时光标所在的矩形: 私有MouseLeftButtonUp(对象发送方,MouseButtonEventArgs e) { var element =(UIElement)发送方;element.ReleaseMouseCapture();var mouseUpRectangle =mouseUpRectangle this.ContentPanel) .OfType() .FirstOrDefault();if (mouseUpRectangle = null) { Debug.WriteLine("MouseUp in“+ mouseUpRectangle.Name);}} (将ContentPanel替换为放置所有控件的容器的名称)
  2. 没有测试,但可能有效。订阅放置所有矩形的容器的MouseLeftButtonUp事件。然后使用相同的逻辑在指针的坐标处检索矩形: 私有MouseLeftButtonUp(对象发送方,MouseButtonEventArgs e) { var mouseUpRectangle = this.ContentPanel) .OfType() .FirstOrDefault();if (mouseUpRectangle != null) { Debug.WriteLine("MouseUp in“+ mouseUpRectangle.Name);}}

您可以在我几个月前写的那篇文章中找到更多信息。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17993164

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档