我有以下情况
我在Silverlight应用程序中按下鼠标左键时处理,并在按住鼠标并移动鼠标时执行某些操作。当左按钮被释放时,我关闭了告诉它做这些东西的标志,然后鼠标移动处理程序就不再做了。
问题是:如果用户在控制区域,按下左按钮并移出控制区域,然后释放按钮并重新进入,MouseLeftButtonUp事件永远不会触发,处理将继续,直到用户点击鼠标。
我的临时解决办法是在MouseLeave上关闭鼠标标志,但这不是我想要的。我想在MouseEnter事件中检查鼠标的左键状态,但我不知道如何做到这一点。
有没有人知道我可以在Silverlight 3中的新闻事件之外访问鼠标按钮状态?谢谢,
更新
经过深入研究后,在Silverlight 2(可能是3)中看起来不可能。我找到了this link。如果有人知道解决方法,请告诉我。
答案 0 :(得分:2)
您需要做的事情可以使用UIElement.CaptureMouse方法完成:
http://msdn.microsoft.com/en-us/library/system.windows.uielement.capturemouse%28VS.95%29.aspx
当UIElement捕获鼠标时,即使鼠标离开Silverlight控件,它也会继续接收鼠标事件。