C# 为什么MouseLeftButtonUp不在WPF中点火?

C# 为什么MouseLeftButtonUp不在WPF中点火?,c#,wpf,xaml,mouseevent,C#,Wpf,Xaml,Mouseevent,为什么在我的WPF应用程序中,我画布上的MouseLeftButtonUp没有启动? 以下是XAML: <Grid Height="300" Width="400"> <Canvas Name="canvas" MouseMove="canvas_MouseMove" MouseLeftButtonUp="canvas_MouseLeftButtonUp" Background="LightGray"/> </Grid> 编辑:我尝试过在画布上添加背

为什么在我的WPF应用程序中,我画布上的MouseLeftButtonUp没有启动? 以下是XAML:

<Grid Height="300" Width="400">
    <Canvas Name="canvas" MouseMove="canvas_MouseMove" MouseLeftButtonUp="canvas_MouseLeftButtonUp" Background="LightGray"/>
</Grid>
编辑:我尝试过在画布上添加背景色,但仍然没有触发事件。似乎MouseMove以某种方式覆盖了MouseLeftButtonUp

Edit2:如果我移除MouseMove事件,mouseLeftButtonUp将触发

Edit3:更大的代码示例。 在insertRectangle方法中,如果使用

 Canvas.SetTop(rect, 50);
 instead of 
 Canvas.SetTop(rect, pos.Y);

事件进展顺利

如果不在画布上设置
背景,它似乎不会注意鼠标事件

尝试:



通过不清除画布,而是在mouseMove方法中移动预览矩形,解决了问题

这并不能解决问题。看起来mouseMove在某种程度上干扰了事件。@Efles:你的网格有大小吗?@Efles:你如何确定事件没有触发?如果在这两种方法中都有断点,则鼠标移动断点将在您甚至可以按下鼠标之前触发,并且您必须将鼠标从画布上移开以响应断点触发,因此您将永远无法启动鼠标。如果您在原始问题中有代码,那么您将得到这两个事件。尝试写入日志文件以验证这一点,或者删除鼠标移动的断点。在MouseMove上,我在鼠标光标后绘制一个矩形。我在MouseLeftButtonUp上放了一个断点。你的代码对我来说不是问题。这两个事件都被触发了。
 Canvas.SetTop(rect, 50);
 instead of 
 Canvas.SetTop(rect, pos.Y);
<Grid>
    <Canvas Name="canvas"
            MouseMove="canvas_MouseMove"
            MouseLeftButtonUp="canvas_MouseLeftButtonUp"
            Background="White" />
</Grid>