Silverlight MouseLeave表现不一致

3

我的问题是,只有当我以一定的速度移动鼠标时,才会触发MouseLeave事件。 下面是带边框的Thumb。单击拇指并按住鼠标按钮。缓慢地移动到边界之外=无事件,快速移动到边界之外=事件。

<Grid x:Name="LayoutRoot" Background="White">
    <Border BorderBrush="Black" BorderThickness="3" Width="200" Height="100"
            MouseLeave="Border_MouseLeave">
            <Thumb  />
    </Border>
</Grid>


private void Border_MouseLeave(object sender, MouseEventArgs e)
{
    MessageBox.Show("Border_MouseLeave");
}

这是银光(Silverlight)中的一个错误,还是我漏了什么? 谢谢。 /Mike

1
不清楚你想做什么,但可能需要考虑使用 CaptureMouse。 - Guy
遇到了相同的问题。在 WPF 中运行良好,但在 Silverlight 中却不行。不幸的是,我无法找到解决方案或解决方法 :( - Alan Mendelevich
1个回答

0
谢谢回答,这里有一个更新: 正如Guy所建议的那样,它似乎与MouseCapture有关。原因是我在代码后台使用Button或Rectangle捕获鼠标时也会出现问题。
如果我在Thumb和Border之间放置一个Grid,则问题消失了,所以我想我会采用这种方法。
我还注意到一些相关的问题当我玩了一下。
        <Grid Width="200" Height="100" Background="Transparent" 
              MouseLeave="Border_MouseLeave">                
              <Button  />                
              <Rectangle Width="40" Height="40" Fill="Violet"               
                         HorizontalAlignment="Left" />            
         </Grid>

如果我按下左键并将光标向左移动到矩形上并移出,MouseLeave事件不会被注册。
这一切都非常奇怪。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接