1

当我在一个(即 a )MouseLeftButtonUp上按下鼠标左键然后将鼠标移动到另一个并释放鼠标左键时,我遇到了不触发的问题。UIElementRectangleRectangle

根据此页面http://msdn.microsoft.com/en-us/library/system.windows.uielement.mouseleftbuttonup.aspx这是因为该事件仅在按下鼠标左键的同一元素上触发,

当鼠标指针悬停在此元素上时释放鼠标左键时发生。

如何解决这个问题?

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

这是我正在使用的。 检查每个 Rectangle 为 YELLOW 的第二列。 已通过按下顶部矩形并向下拖动到底部矩形突出显示。 一旦到达底部矩形,我希望能够(以任何方式)发生按钮向上事件以执行某些操作.. 不起作用!

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

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

4

1 回答 1

2

考虑Grid 所有矩形上添加一个,这样你会得到MouseButtonUp(只要在网格上释放鼠标),但你必须根据MouseEventArgs.GetPosition.

您可能还想研究UIElement.CaptureMouse(), .ReleaseMouseCapture()。捕获鼠标意味着即使鼠标移离-MouseButtonUp 也会触发,但是会为捕获矩形引发and (因此您仍然必须计算要突出显示的矩形),直到它调用.MouseButtonDownRectangleMouseMoveMouseButtonUpReleaseMouseCapture()

于 2013-10-03T22:15:16.983 回答