Silverlight MouseLeave显示不一致的行为

时间:2010-12-30 12:17:25

标签: silverlight mouseleave

所以,我的问题是,如果我以一定的速度移动光标,MouseLeave事件才会被触发。下面是带边框的拇指。单击拇指并按住鼠标按钮。在边界外缓慢移动=无事件,在边界外快速移动=事件。

<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");
}

它是银光中的错误还是我错过了什么? 感谢名单 /麦克

1 个答案:

答案 0 :(得分:0)

Thanx for the anwers,这是一个更新: 正如盖伊建议的那样,它似乎与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>

如果我按下左按钮并将光标向左移动到Rectangle上,则不会注册MouseLeave事件。

这一切都很奇怪。