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()