代码之家  ›  专栏  ›  技术社区  ›  Nick Gotch

如何在Silverlight中获取按钮按下事件之外的鼠标按钮状态?

  •  2
  • Nick Gotch  · 技术社区  · 15 年前

    我有以下情况

    在我的Silverlight应用程序中,当按下鼠标左键时,我会进行一些操作,同时按住鼠标并移动鼠标。当左键被释放时,我关闭指示它做这些事情的标志,鼠标移动处理程序则不再做这些事情。

    问题是:如果用户在控制区,则向下按左键并移出控制区,然后释放按钮并重新输入,mouseLeftButtonUp事件永远不会触发,处理过程将继续,直到用户单击鼠标。

    我的临时解决方法是在mouseleave上关闭鼠标标志,但这并不是我真正想要的。我想检查一下鼠标在MouseEnter事件中的左键状态,但我不知道该怎么做。

    有人知道在Silverlight 3的新闻事件之外我可以访问鼠标按钮状态的方法吗?谢谢,

    更新

    经过深入研究,我发现在Silverlight2(可能是3)中似乎不可能做到这一点。 this link . 如果有人知道一个解决办法,请告诉我。

    1 回复  |  直到 11 年前
        1
  •  2
  •   KeithMahoney    15 年前

    您需要做的事情可以通过uielement.captureMouse方法完成:

    http://msdn.microsoft.com/en-us/library/system.windows.uielement.capturemouse%28VS.95%29.aspx

    当uielement捕获鼠标后,即使鼠标离开Silverlight控件,它也将继续接收鼠标事件。