3

所以,我的问题是只有当我以一定速度移动光标时才会触发 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");
}

这是silverlight中的错误还是我错过了什么?谢谢/迈克

4

1 回答 1

0

感谢您的回答,这里有一个更新:正如 Guy 所建议的,它似乎与 MouseCapture 有关。原因是我也使用 Button 或在代码隐藏中捕获鼠标的 Rectangle 遇到问题。

如果我在拇指和边框之间放置一个网格,问题就会消失,所以我想我会这样做。

当我玩一些游戏时,我也注意到了一个相关的问题。

        <Grid Width="200" Height="100" Background="Transparent" 
              MouseLeave="Border_MouseLeave">                
              <Button  />                
              <Rectangle Width="40" Height="40" Fill="Violet"               
                         HorizontalAlignment="Left" />            
         </Grid>

如果我按下左键并将光标移到 Rectangle 上的左侧,则 MouseLeave 事件未注册。

这一切都很奇怪。

于 2011-01-04T15:48:00.620 回答