代码之家  ›  专栏  ›  技术社区  ›  Brandon

在WPF中,如何在画布上捕获鼠标并仍然找到光标悬停在哪个控件上?

  •  2
  • Brandon  · 技术社区  · 14 年前

    我有一个自定义Canvas控件(从Canvas继承而来)覆盖在大面积的用户控件上。其思想是在用户控件(即连接线)之间绘制路径。

    Mouse.Capture(theCanvas) Mouse.DirectlyOver 总是显示画布,所以我不能通过偷看当前位置和查看哪个用户控件结束来伪造它。

    所以,我仍然需要画布来绘制路径,但如何解决以下问题:

    1. 偷看画布下面,看看最上面的控件是什么?
    2. 获取此MouseDown->Track MouseMoves->MouseUp工作流以在画布上工作而不捕获鼠标?

    有其他想法欢迎。。。

    1 回复  |  直到 14 年前
        1
  •  0
  •   Rob Fonseca-Ensor    14 年前

    我同意这是你的两个选择。如果您只想将一些单击转发给usercontrols,那么使用选项1,并点击画布下的testthecontrols。

    PreviewMouseMove 事件,因为这可以在控件到达事件之前拾取并可选地“处理”事件,但是如果不将handled设置为true,它不会阻止事件