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

Posted

技术标签:

【中文标题】如何在按钮按下事件之外在 Silverlight 中获取鼠标按钮状态?【英文标题】:How to get the mouse button state in Silverlight outside of button press events? 【发布时间】:2009-10-19 15:58:44 【问题描述】:

我有以下情况

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

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

我的临时解决方法是在 MouseLeave 上关闭鼠标标志,但这并不是我真正想要的。我想在 MouseEnter 事件中查看鼠标的左键状态,但我不知道有什么方法。

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

更新

经过深入研究,这似乎在 Silverlight 2(可能还有 3)中是不可能的。我找到了this link。如果有人知道解决方法,请告诉我。

【问题讨论】:

【参考方案1】:

你需要做的事情可以通过 UIElement.CaptureMouse 方法来完成:

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

当 UIElement 捕获鼠标时,即使鼠标离开 Silverlight 控件,它也会继续接收鼠标事件。

【讨论】:

以上是关于如何在按钮按下事件之外在 Silverlight 中获取鼠标按钮状态?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Widget 之外调度 Bloc 事件?

如何在角度6的按下按钮更改事件?

如何将 microbit 与 BLE 连接并监听按钮按下事件?

如何在输入文本区域中创建 Enter 事件以使用 Vue.js 和 Electron 按下按钮

Silverlight 4.0 - 使用鼠标事件进行图像裁剪

AvaloniaUI:全局捕获鼠标按钮向上/向下