【问题标题】:How to check current mouse position beyond my view area如何检查当前鼠标位置超出我的视图区域
【发布时间】:2016-11-11 03:13:07
【问题描述】:

我找到了以下关于在 WPF 中拖放控件的简单示例的开源代码。 "http://www.codeproject.com/Articles/148503/Simple-Drag-Selection-in-WPF" 有了这个源,我遇到了当我移动控件时,这个移动的控件可以移动到视图区域之外并从这个视图中消失的问题。 直到现在,我仍然停留在根部。任何人都可以帮我解决这个问题吗? 感谢您的关注。

【问题讨论】:

  • 欢迎来到 SO!有什么代码可以显示吗?这将帮助我们帮助您。祝你好运!
  • 获取鼠标坐标并检查 x/y 值是否
  • 感谢您的回复@MickyD。我只是像上面链接中的源代码一样对示例进行编码。所以,我不知道如何修复这个错误:(
  • 谢谢@AnjumSKhan。我曾经尝试获取鼠标坐标。此方法在捕获鼠标控制点时进行更正。但我不知道如何获得控制点。如果我能明白这一点,我会用它与实际宽度/实际高度进行比较。

标签: c# wpf listbox mouseevent controls


【解决方案1】:

为您控制重写 PreviewMouseLeftButtonDown 事件,并在此方法内部获取鼠标相对于屏幕的位置坐标。

打电话后马上 捕捉鼠标(); 供您控制。

这将允许您监视鼠标在控件之外的移动,因此请确保您覆盖 PreviewMouseMove 并且在 PreviewMouseMove 内部您应该能够计算鼠标是在控件区域内部还是外部,或者您想要比较的任何其他领域。

此外,您将需要覆盖 PreviewMouseUp 并在其中释放鼠标捕获 ReleaseMouseCapture();来自之前的 PreviewMouseLeftButtonDown 调用。这很重要,否则您最终会得到行为怪异的鼠标。

【讨论】:

  • 感谢您的评论。对于您的回复,我知道我现在需要做什么:D
猜你喜欢
  • 2016-04-10
  • 2021-10-06
  • 1970-01-01
  • 2016-02-05
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-12
相关资源
最近更新 更多