鼠标下移事件不会在画布控件中冒泡出现



在我的WPF项目中有一个画布控件:

<Canvas x:Name="mainCanvas" Margin="0" 
        MouseMove="mainCanvas_MouseMove"     
        MouseLeftButtonDown="mainCanvas_MouseLeftButtonDown"/>

在这个canvas控件中,有一些其他的canvas控件作为子控件。

问题是,当我点击这些子画布控件,mainCanvas_MouseLeftButtonDown回调没有被调用。我没有将任何东西绑定到这些子画布的鼠标按下事件。

mainCanvas_MouseMove回调似乎工作得很好,虽然,它被称为即使当我鼠标在子画布上。

我试着预览鼠标按下事件,没有运气。

我该如何解决这个问题?

事件没有冒泡,因为有人在可视化树处理它们。

您应该使用snoop查看谁处理了事件

否则只需将子画布注册到eventhandler

public override Canvas CreateCanvas()
{
  Canvas canvas = new Canvas();
  canvas.MouseMove +=new MouseEventHandler(mainCanvas_MouseMove);
  canvas .MouseLeftButtonDown +=new MouseButtonEventHandler(mainCanvas_MouseLeftButtonDown);
 // your code here
}

当你销毁你的子画布时,不要忘记取消事件的注册。

相关内容

  • 没有找到相关文章

最新更新