C# 在Win Phone 8中处理不同UIElement上的MouseLeftButtonUp

C# 在Win Phone 8中处理不同UIElement上的MouseLeftButtonUp,c#,silverlight,windows-phone-7,windows-phone-8,uielement,C#,Silverlight,Windows Phone 7,Windows Phone 8,Uielement,当我在一个ui元素(即一个矩形)上按下鼠标左键,然后将鼠标移动到另一个矩形,然后松开鼠标左键时,我的鼠标左键不触发 根据该页面,这是因为事件仅在按下鼠标左键的同一元素上激发 当鼠标指针位于该元素上方时松开鼠标左键时发生。 如何解决这个问题 我尝试在两个矩形下添加一个网格元素来处理MouseLeftButtonUp事件,但这似乎并没有解决问题。当从一个矩形移动到另一个矩形时不会触发,但当从一个矩形移动到网格时会触发。当从网格移动到矩形时,它也不会触发。不同的冒泡策略 这就是我的工作。检查每个矩形

当我在一个
ui元素
(即一个
矩形
)上按下鼠标左键,然后将鼠标移动到另一个
矩形
,然后松开鼠标左键时,我的
鼠标左键不触发

根据该页面,这是因为事件仅在按下鼠标左键的同一元素上激发

当鼠标指针位于该元素上方时松开鼠标左键时发生。

如何解决这个问题

我尝试在两个矩形下添加一个网格元素来处理MouseLeftButtonUp事件,但这似乎并没有解决问题。当从一个矩形移动到另一个矩形时不会触发,但当从一个矩形移动到网格时会触发。当从网格移动到矩形时,它也不会触发。不同的冒泡策略

这就是我的工作。检查每个矩形为黄色的第二列。通过按下顶部矩形并向下拖动到底部矩形,它们已被“突出显示”。一旦到达底部矩形,我希望能够发生鼠标按钮向上事件(通过任何方式)以执行某些操作。。不行


如果这似乎是这种“突出”机制的奇怪解决方案,或者在这种情况下完全滥用矩形,请不要害羞地说,我是WP8的新手。

考虑在所有矩形上添加一个
网格
,这样你就会得到
鼠标按钮
(只要鼠标在网格上释放),但是您必须根据
MouseEventArgs.GetPosition
计算移动了哪个矩形

您可能还需要查看
UIElement.CaptureMouse()
。ReleaseMouseCapture()
。捕获鼠标意味着即使当鼠标从
MouseButtonDown
-
矩形
移开时,
MouseButtonUp
也会被触发,但是捕获矩形的
MouseMove
MouseButtonUp
会被触发(因此您仍然需要计算要高亮显示的矩形),直到调用
ReleaseMouseCapture()