C#WPF-即使鼠标移动到子控件上,也会触发Canvas MouseMove事件

C#WPF-即使鼠标移动到子控件上,也会触发Canvas MouseMove事件,wpf,events,canvas,mousemove,onmousemove,Wpf,Events,Canvas,Mousemove,Onmousemove,如何使CanvasMouseMove事件仅在我的鼠标位于Canvas和Canvas上方时触发 我有一个TextBox作为Canvas的孩子,当我的鼠标移动到TextBox上时,它仍然会触发,我希望这不会发生,例如,只有当鼠标在画布上移动时,才会触发该事件。您必须在画布PreviewMouseMove上收听该事件的预览版本,并将e.Handled=true。 看看这个网址 如何使画布MouseMove事件仅在我的鼠标位于canvas和canvas上方时触发 您无法阻止触发事件,但可以检查鼠标是否

如何使
Canvas
MouseMove
事件仅在我的鼠标位于
Canvas
Canvas
上方时触发


我有一个
TextBox
作为
Canvas
的孩子,当我的鼠标移动到
TextBox
上时,它仍然会触发,我希望这不会发生,例如,只有当鼠标在
画布上移动时,才会触发该事件。

您必须在画布PreviewMouseMove上收听该事件的预览版本,并将e.Handled=true。 看看这个网址

如何使画布
MouseMove
事件仅在我的鼠标位于
canvas
canvas
上方时触发

您无法阻止触发事件,但可以检查鼠标是否直接位于事件处理程序中的
画布
区域上,如果没有,则什么也不做:

private void Canvas_MouseMove(object sender, MouseEventArgs e)
{
    if (Mouse.DirectlyOver == sender)
    {
        //your code...
    }
    //else, i.e. when the mouse moves over the TextBox or another child element, do nothing
}