Silverlight 当控件位于特定ui元素上时,如何知道是否释放鼠标或触摸

Silverlight 当控件位于特定ui元素上时,如何知道是否释放鼠标或触摸,silverlight,windows-phone-7,windows-phone-7.1,border,windows-phone-8,Silverlight,Windows Phone 7,Windows Phone 7.1,Border,Windows Phone 8,我有一个图像块(这些图像嵌入在边框控件中),它们排列在4行4列中。当用户从一个图像从左向右或从右向左或从对角线滑动到另一个图像时,我想知道所有这些图像都经过了什么 我发现了MouseEnter和MouseLeave事件。但是如果用户触摸了image1(在第1行中)并将滑动拖动到image4,鼠标离开,我如何知道用户是否完成了滑动?因为用户可能会在鼠标停留在image4后触摸屏幕上的任何位置 捕获这些遍历图像的最佳方法是什么?列表还是字典?根据本文。。。。。。 您可以使用MouseLeftBut

我有一个图像块(这些图像嵌入在边框控件中),它们排列在4行4列中。当用户从一个图像从左向右或从右向左或从对角线滑动到另一个图像时,我想知道所有这些图像都经过了什么

我发现了MouseEnter和MouseLeave事件。但是如果用户触摸了image1(在第1行中)并将滑动拖动到image4,鼠标离开,我如何知道用户是否完成了滑动?因为用户可能会在鼠标停留在image4后触摸屏幕上的任何位置

捕获这些遍历图像的最佳方法是什么?列表还是字典?

根据本文。。。。。。

您可以使用MouseLeftButtonDown事件检测鼠标滑动开始于哪个平铺/正方形

然后,如果用户像文章所说的那样在不同的对象上滑动鼠标

LeftMouseButtonUp事件将执行,尽管LeftMouseButtonDown不会对另一个方块/方块/图像中发生的实际向下事件执行

因此,如果您有一个简单的4x4矩阵/数组来保存滑动是/否值。。。 如1或“是”,鼠标掠过此元素,0或“否”,鼠标从未穿透此互动程序/图像/元素。。。那你应该没事了

使用古老的规则

如果X1>X2,则鼠标从右向左移动(向左移动)

如果X2>X1,则鼠标从左向右移动(向右移动)

如果Y1>Y2,则鼠标从下向上移动(向上移动)

如果Y2>Y1,则鼠标移动由上向下(向下移动)

混合并匹配对角线移动/滑动的规则

其中X1,Y1是鼠标向下屏幕值,X2,Y2是鼠标向上屏幕值

编辑
根据备注部分的文本

引用 当鼠标指针位于UIElement上时,按下鼠标左键(或当触针尖端接触tablet PC时),将引发MouseLeftButtonDown事件。松开鼠标按钮(或手写笔尖端)时,将引发MouseLeftButtonUp事件。但是,如果释放按钮时鼠标指针(或手写笔)移动到另一个对象上,则接收MouseLeftButtonDown事件的UIElement仅在该UI元素显式捕获鼠标时才会接收MouseLeftButtonUp事件。没有离散的双击事件。双击由两个MouseLeftButtonDown和MouseLeftButtonUp事件序列组成。可以使用事件数据(ClickCount)捕获单击计数

使用基于MouseButtonEventHandler的处理程序来处理此事件。有关如何处理鼠标事件的更多信息,请参阅鼠标支持

鼠标捕捉是一个概念,通过该概念,对象可以继续接收鼠标事件,即使鼠标指针(或手写笔)不再位于对象的边界区域上。要请求鼠标捕获,鼠标左键(或触笔)必须处于按下(向下)状态。因此,调用CaptureMouse的代码中的一个公共点是来自特定UIElement的MouseLeftButtonDown处理程序。有关鼠标捕获及其有用场景的更多信息,请参阅鼠标支持或如何:在UI布局中拖放对象

报价结束 因此,与我的第一个解决方案相反,对不起,我一定是误读了这些评论,尽管开始捕捉鼠标的第三段是一个概念。。。。 说明即使在调用MouseeEvent(即MOUSEDOWN事件)的初始控件之外,您仍应能够捕获鼠标向上事件,这将来自原始控件,也就是说,您从control1开始滑动,control1 MouseLeftButtonDown事件触发,然后您需要捕获鼠标(有关鼠标捕获及其有用场景的更多信息,请参阅鼠标支持或如何:在UI布局中拖放对象)然后,如您所述,在控件2上滑动鼠标,当您的手指/指针/触笔在控件3上滑动鼠标时,将为捕获鼠标的控件触发原始捕获的mouseup事件(在本例中为control1)并使用屏幕X/Y位置和控件X/Y/宽度/高度属性,您应该能够评估鼠标在哪个控件上释放

如果我有更多的时间,我会更仔细地阅读它,避免给你提供几乎正确的信息,而不是正确的信息,我建议你仔细阅读这篇文章,深入阅读,并遵循鼠标捕获过程,尝试一下,不要忘了当你释放鼠标时,即使它可能在另一个控件上将为捕获鼠标的控件触发实际的mouseup事件


我也为我之前的错误感到抱歉-这就是你跳过阅读时发生的情况。

我不确定是否“刷卡”跨图像是平台上的一种典型手势。基于此滑动,UI在做什么?可能有更好的方法来实现您正在尝试做的事情,但由于您没有在此处包含它,因此无法知道。当用户跨所有这些图像滑动时,我会将它们缝合在一起。尽管边界控制上有鼠标进入和鼠标离开事件l、 他们没有告诉我触摸是否被释放:-(下面的帖子帮助了我:-)当我从控件1滑动到控件2,然后滑动到控件3时,mouseleftbuttonup事件不会在控件3上触发。相反,如果我只单独触摸控件3并释放触摸,则mouseleftbuttonup事件会触发。请注意,目前我有6个边框控件,每个控件内都有一个文本块。我还没有添加图像。根据o备注部分的文本…引用