我有一些矩形,我想实现的是:
用户触摸屏幕,他可以在长方形之间滑动。然后他的手指抬起,最后一次触摸矩形被选中。(在矩形外腾空将不会触发任何东西)
就像我lumia 920的键盘,一旦你发现你的手指放错了位置,你就可以滑到正确的位置,抬起手,在屏幕上显示正确的字符。
感谢你们英雄们!
发布于 2013-08-01 12:06:52
这比看起来要复杂得多,因为只有在首先在控件上触发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替换为放置所有控件的容器的名称)您可以在我几个月前写的那篇文章中找到更多信息。
https://stackoverflow.com/questions/17993164
复制相似问题