MouseCapture可防止所有基于鼠标的触发器在WPF中触发

Jam*_*ney 1 wpf

我在拖放操作期间使用CaptureMouse()以确保我不会错过MouseUp事件,但这似乎可以防止任何鼠标事件到达我的Canvas上的任何其他对象.这意味着我的基于IsMouseOver的触发器不起作用,但我需要它们来指示可以删除对象的有效位置.

我这样做错了,还是有办法确保我的Canvas上的所有东西都能得到鼠标事件?

Tod*_*ite 5

元素是画布的SubTree的一部分吗?或在画布之外?如果它们在那之内,你可以使用Capture方法捕获CaptureMode.

Mouse.Capture(elementToCapture, CaptureMode.SubTree);
Run Code Online (Sandbox Code Playgroud)

或者,您应该查看DragDrop类并考虑使用Drop事件