C# 为什么MouseLeftButtonUp不在WPF中点火?
为什么在我的WPF应用程序中,我画布上的MouseLeftButtonUp没有启动? 以下是XAML: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> 编辑:我尝试过在画布上添加背
<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>