首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >捕获鼠标时的IsMouseOver

捕获鼠标时的IsMouseOver
EN

Stack Overflow用户
提问于 2012-04-26 20:19:16
回答 2查看 608关注 0票数 12

我的元素上有一个IsMouseOver触发器。我也有一个拖动动作发生,另一个元素捕获鼠标,因此IsMouseOver触发器永远不会发生,但我明确希望当我在它上面拖动时在某些元素上发生它(鼠标捕获和所有)。这个是可能的吗?

EN

回答 2

Stack Overflow用户

发布于 2017-12-20 01:45:38

我知道这在几年前就被问过了,但以防有人从搜索引擎(就像我一样)登陆到这里,下面是我自己解决这个问题的方法。不使用IsMouseOver属性,而是在代码中使用命中测试来确定鼠标是否在您的控件中:

代码语言:javascript
复制
bool IsMouseOverEx = false;

VisualTreeHelper.HitTest(this, d =>
{
  if (d == this) 
  {
    IsMouseOverEx = true;
    return HitTestFilterBehavior.Stop;
  } 
  else 
   return HitTestFilterBehavior.Continue;
}, 
ht => HitTestResultBehavior.Stop, 
new PointHitTestParameters(Mouse.GetPosition(this)));

if (IsMouseOverEx) 
{
  //Do whatever you need in case of MouseOver
}

注意:如果您还没有阅读该问题,请注意,此方法是在鼠标被“捕获”并因此IsMouseOver属性无法正常工作的情况下的一种解决方法。在正常情况下,您应该始终使用IsMouseOver

票数 4
EN

Stack Overflow用户

发布于 2014-04-14 10:28:04

当用户拖动某些东西时,鼠标会在此期间被“捕获”,并且鼠标事件不会发送到鼠标经过的控件。只有实际“捕获鼠标”的控件才会接收鼠标事件。因此,您需要在那里处理这些事件。这应该很简单。如果你有任何问题,请随时给我发电子邮件给我一些示例代码,我会为你检查它。祝你万事如意。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10333251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档